【问题标题】:web.xml in OSGi containerOSGi 容器中的 web.xml
【发布时间】:2011-01-12 13:54:10
【问题描述】:

优点!看起来像基本问题,但我找不到我要找的东西。

我有 Equinox 并想在其中运行 Spring(在 Servlet 中引导)。 我不能使用 dm-server,也不能使用 http-bridge,只是简单的独立 Equinox。 另一方面,使用 plugin.xml http 注册表 servlet 扩展还不够好,因为我需要成熟的 web.xml 来引导 Spring。

我应该在哪里挖?

谢谢! 巴鲁克。

【问题讨论】:

    标签: spring servlets osgi


    【解决方案1】:

    要支持“传统”(又名传统)web.xml 文件用于 webapp 部署,您需要实现 OSGi Web 应用程序规范,它是 OSGi R4.2 企业规范的一部分。这将允许您部署“Web 应用程序包”(WAB)甚至普通的旧 WAR 文件。

    在 Eclipse Gemini 和 Apache Aries 项目中都有这个容器的实现。请注意,在 Eclipse Gemini 中找到的那个也在 Eclipse Virgo(dm Server 的新名称)中找到。您可能会发现使用 Virgo 会给您带来更干净的开箱即用体验,而不必自己组装组件。再说一次,我完全理解它是否也提供了比你真正想要的更多的东西!

    对此的替代方法是远离web.xml,并以编程方式向OSGi HttpService 注册servlet。这应该更轻量级,但我不知道它是否适用于“引导 Spring”——一个相当模糊的要求。

    【讨论】:

    • 尼尔,感谢您的回答!通过“引导 Spring”,我的意思是使用如下所述的侦听器和上下文参数:static.springsource.org/spring/docs/3.0.x/… HttpService 是否支持侦听器和上下文参数?
    【解决方案2】:

    或者您可以使用 tomcat OSGi 捆绑包,这将使您能够将捆绑包加载为战争文件。问题在于您的 Web 包的名称必须以“.war”结尾,而在该后缀之前的所有内容都是应用程序名称。因此,如果您的包的名称是 myapp.war,您可以使用 http://your.server.cc/myapp 连接到它(据我所知,无法更改)

    【讨论】:

      猜你喜欢
      • 2012-05-02
      • 2011-06-30
      • 1970-01-01
      • 2017-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      相关资源
      最近更新 更多