我有非常简单的.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
怎么做?
更重要的是
我需要一种方法来转换.WAR文件或servlet项目(我有源代码),以便通过将新的.WAR文件复制到$ SERVICEMIX_HOME / deploy目录来自动部署它。
我已尝试编辑MANIFEST.MF文件,但没有成功。可能我做错了什么。
感谢您的任何建议/帮助。
答案 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/
给了我这个:
访问/ TestServlet /时出现问题。原因是:
Not Found
由Jetty提供://
http://localhost:8080/TestServlet/index.html
为我提供了合适的网站。