如何配置Tomcat 7以允许WAR文件指定其自己的上下文根,该上下文根不基于WAR文件名?例如:我有A-1.0.0.war和B-1.0.0.war,我想将它们都部署到同一个Tomcat实例中。当部署完成时,我想将浏览器指向localhost:8080/portal并查看A-1.0.0.war中的内容,并且我想将一个休息请求curl到localhost:8080/rest/v1/helloworld,其实现来自B-1.0.0.war。Tomcat中WAR文件中的上下文根配置7
我已经四处搜寻,并尝试配置不同的方式,但这些都没有产生我上面的期望的情况。另外,我发现Tomcat文档有点太稀少,无法完全理解。我读过:
消化的,在%CATALINA_HOME%/ conf目录后/ server.xml中我有这台主机条目:
unpackWARs="true" autoDeploy="true"
deployXML="true" copyXML="true" >
WEB-INF/web.xml
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
这是A.war/META-INF/context.xml从t中的一个完整内容他WAR文件:
当我通过管理控制台部署到Tomcat,我现在用的是“WAR文件部署”按钮,但我没有“部署的目录或WAR文件在指定的任何字段位于服务器上“(因为我希望这些来自WAR本身,而不是让某人指定它)。当我打开webapps目录时,我看到这个列表。我希望看到的,而不是A-1.0.0/目录,portal/:
A-1.0.0/
B-1.0.0/
docs/
examples/
host-manager/
manager/
ROOT/
sample/
A-1.0.0.war
B-1.0.0.war
sample.war
万一有帮助,这里的一些背景故事,以我的方案。我的目标是将捆绑在一个.jar中的应用程序移动到两个.war文件中。目前,这是一个maven项目,它生成一个jar作为其包含Spring MVC和JSP应用程序的构建工件。我的客户正在使用java在命令行上启动应用程序。我想要在我们的开发服务器上安装Tomcat 7,通过Tomcat的管理控制台可以部署WAR文件。我还想在WAR的文件名中加上一个版本号,以便处理WAR的人员清楚他们正在部署的是什么。在每个构建/发布周期中,我希望他们解除旧战争并部署新战争。作为一个方面说明 - 这是我第一次尝试将应用程序部署为战争,并且我可能错过了一些最佳做法,因此如果这不是一个好方法,请善意纠正我。