Servlets 将.WAR转换为在karaf/servicemix中自动部署

Servlets 将.WAR转换为在karaf/servicemix中自动部署,servlets,osgi,war,apache-servicemix,hotdeploy,Servlets,Osgi,War,Apache Servicemix,Hotdeploy,我有一个非常简单的。WAR包含示例servlet。我可以使用以下命令在servicemix中部署它: osgi:安装file:///home/seiho/apache-servicemix-4.4.2/deploy/TestServlet.war?Bundle-SymbolicName=TestServlet&Webapp上下文=/TestServlet 然后在我的浏览器中看到它。但仅具有文件的完整路径,例如:localhost:8080/TestServlet/index.html或local

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

osgi:安装file:///home/seiho/apache-servicemix-4.4.2/deploy/TestServlet.war?Bundle-SymbolicName=TestServlet&Webapp上下文=/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文件,但没有成功。也许我做错了什么


谢谢你的建议/帮助

要被识别为wab,您需要在清单中添加上下文路径头:

Web-ContextPath: TestServlet

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

Web-ContextPath: TestServlet

现在开始工作了!我正在根据以下页面执行MANIFEST.MF:

问题在于,出于某种原因,“Bundle Version:1.0”行是必需的,而不是该页上所述的可选行

老实说,只需添加Bundle版本就可以修复它

我知道MANIFEST.MF有问题,在霍莉·康明斯提出问题后,我又玩了一点。谢谢你,霍莉

我仍然无法手动启动网站(必须手动输入index.html)

http://localhost:8080/TestServlet/
告诉我:
HTTP错误404

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

Not Found
由码头提供动力://



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

它正在运行!我正在根据以下页面执行MANIFEST.MF:

问题在于,出于某种原因,“Bundle Version:1.0”行是必需的,而不是该页上所述的可选行

老实说,只需添加Bundle版本就可以修复它

我知道MANIFEST.MF有问题,在霍莉·康明斯提出问题后,我又玩了一点。谢谢你,霍莉

我仍然无法手动启动网站(必须手动输入index.html)

http://localhost:8080/TestServlet/
告诉我:
HTTP错误404

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

Not Found
由码头提供动力://



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

您的新清单是什么样子的?清单版本:1.0 Ant版本:Apache Ant 1.8.3创建人:1.7.0_06-b24(Oracle公司)Bundle ManifestVersion:2 Bundle SymbolicName:TestServlet Bundle ClassPath:,WEB-INF/classes导入包:javax.servlet,javax.servlet.http-是指向我得到的.WAR文件的链接。您的新清单是什么样子的?清单版本:1.0 Ant版本:Apache Ant 1.8.3创建人:1.7.0_06-b24(Oracle公司)Bundle ManifestVersion:2 Bundle SymbolicName:TestServlet Bundle ClassPath:,WEB-INF/classes导入包:javax.servlet,http-是指向我得到的.WAR文件的链接。是的,我这样做了。但它仍然无法自动部署。添加捆绑包版本修复了自动部署问题。接下来,我添加Web ContextPath:TestServlet条目,就像您编写的一样。谢谢,我做到了。但它仍然无法自动部署。添加捆绑包版本修复了自动部署问题。接下来,我添加Web ContextPath:TestServlet条目,就像您编写的一样。谢谢