0

我在 OSGI 环境中运行 Servlet,具体来说,我将 Karaf 与 Pax Web / Jetty 一起使用。

我很高兴使用 BundleActivator 来实例化 servlet 并将它们注册到 HttpService。我喜欢它的地方在于,它为我提供了一种通过连接 ServiceTracker 来处理依赖注入的非常简单的方法。

但是,对于某些事情,我只能找到有关如何通过经典 web.xml 配置进行设置的文档。具体来说,我错过了transport-guarantee指令的等效项,即告诉 HttpService 在某些 URL 上,它应该坚持使用 HTTPS 并在必要时重定向客户端的方法。

或者,如果我可以web.xml像往常一样使用描述符文件,但仍然可以通过一种方便而简单的方式将 servlet 连接到我的 OSGi 服务,我会接受的。

4

1 回答 1

0

现在我会说这是一个 web.xml 唯一的功能。可能想要打开一个新的功能请求。关于在 Servlet 中注入 OSGi 服务。如果您将应用程序与 Pax CDI 结合起来,您就可以通过 CDI 方式注入 OSGi 服务。

@WebServlet(urlPatterns = "/myServlet")
public class MyServlet extends HttpServlet {

    @Inject
    @OsgiService
    private AnotherService service;

...
于 2015-03-31T07:03:53.910 回答