OSGi容器中的web.xml

时间:2011-01-12 13:54:11

标签: spring servlets osgi

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

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

我应该在哪里挖掘?

谢谢! 巴鲁。

2 个答案:

答案 0 :(得分:6)

要支持用于webapp部署的“传统”(又称遗留)web.xml文件,您需要实现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” - 这是一个非常模糊的要求。

答案 1 :(得分:0)

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