我有一个 JBoss 7.1.2 应用程序服务器启动并运行,现在我想在其中部署一个注册 servlet 的 OSGi 包。(类似于 Hello World,但通过 servlet)
可能可以通过 WAB 将其存档,但与在 OSGi 中一样,我认为它也应该在一个简单的非 wab 包中工作。
我使用 Activator 创建了一个捆绑包,如下所示:
snip..
public void start(BundleContext bundleContext) throws Exception {
ServiceReference<?> httpServiceReference = bundleContext.getServiceReference(HttpService.class.getName());
System.out.println("ref: " + httpServiceReference);
HttpService httpService = (HttpService) context.getService(httpServiceReference);
System.out.println(httpService.getClass().getName());
try {
httpService.registerServlet("testservlet", new MyServlet() , null, null);
} catch (Exception e) {
e.printStackTrace();
}
}
部署并启动捆绑包后,httpServiceReference 为null
. 我觉得这很奇怪,因为当我查看 felix Web 控制台时,实际上有HtttpService 可用。(来自 pax-web)
有谁知道为什么我的参考在这里可能是空的?谢谢!