转换.WAR在karaf / servicemix中进行自动部署

时间:2012-08-23 14:27:39

标签: servlets osgi war apache-servicemix hotdeploy

我有非常简单的.WAR包含示例servlet。我可以使用以下命令在servicemix中部署它:

osgi:install file:///home/seiho/apache-servicemix-4.4.2/deploy/TestServlet.war?Bundle-SymbolicName=TestServlet&Webapp-Context=/TestServlet

然后在我的浏览器中看到它。但只有文件的完整路径,例如:localhost:8080 / TestServlet / index.html或localhost:8080 / TestServlet / TestServlet(我的servlet是TestServlet类)。
我想在输入:localhost:8080 / TestServlet

后自动启动index.html页面

怎么做?



更重要的是 我需要一种方法来转换.WAR文件或servlet项目(我有源代码),以便通过将新的.WAR文件复制到$ SERVICEMIX_HOME / deploy目录来自动部署它。

我已尝试编辑MANIFEST.MF文件,但没有成功。可能我做错了什么。

感谢您的任何建议/帮助。

2 个答案:

答案 0 :(得分:0)

要识别为wab,您需要向清单添加上下文路径标头:

Web-ContextPath: TestServlet

答案 1 :(得分:0)

现在正在运作!我根据这个页面做了我的MANIFEST.MF:http://team.ops4j.org/wiki/display/ops4j/Pax+Web+Extender+-+War+-+OSGi-fy

问题是由于某种原因需要“Bundle-Version:1.0”行,而不是该页面上所述的可选。

老实说,只需添加Bundle-Version fix-it。

我知道MANIFEST.MF出了问题,在Holly Cummins的问题之后我又玩了一些。谢谢霍莉。

我仍然无法对手动网站启动做任何事情(必须手动输入index.html)。

http://localhost:8080/TestServlet/给了我这个:

<小时/> HTTP错误404

访问/ TestServlet /时出现问题。原因是:

Not Found

由Jetty提供://


http://localhost:8080/TestServlet/index.html为我提供了合适的网站。