给定我的WAR文件时,如何告诉Tomcat使用特定的上下文路径?
示例:我有一个由maven build创建的war文件,文件的结果名称很长。因此,我不希望tomcat管理器应用程序使用war的文件名作为上下文。
在META-INF中提供context.xml不会产生预期的结果
我还在文档中找到以下path属性Context:
path
Context
除非在server.xml中静态定义Context时,否则不得设置此字段的值,因为它将从用于.xml上下文文件或docBase的文件名中推断出来。
因此,这似乎不是告诉应用服务器WAR路径的正确方法。
还有其他提示吗?
上下文容器的文档中有两个要点:
在目录中的单个文件中(扩展名为“ .xml”)$CATALINA_BASE/conf/[enginename]/[hostname]/。 文件名 (不带.xml扩展名) 将用作上下文路径 。可以使用#定义多级上下文路径,例如对于/ foo / bar的上下文路径为foo#bar.xml。可以使用名为ROOT.xml的文件定义默认的Web应用程序。 仅当应用程序文件中$CATALINA_BASE/conf/[enginename]/[hostname]/位于的单个文件中/META- INF/context.xml的应用程序中没有上下文文件时。 如果Web应用程序打包为WAR,/META- INF/context.xml则将被复制并重$CATALINA_BASE/conf/[enginename]/[hostname]/命名以匹配应用程序的上下文路径。该文件存在后,如果/META- INF/context.xml在主机的appBase中放置了更新的WAR,将不会替换该文件。
$CATALINA_BASE/conf/[enginename]/[hostname]/
/META- INF/context.xml
因此,将a捆绑在一起时META- INF/context.xml,无论元素中path定义了什么,文件都将重命名为WAR的名称,并且该名称成为上下文路径Context。
META- INF/context.xml
因此,我在这里看到两个选择:
<finalName>
<warName>
<project> ... <build> <finalName>mycontext</finalName> ... </build> ... </project>
maven-tomcat-plugin
<project> ... <build> ... <plugins> ... <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.0-SNAPSHOT</version> <configuration> <path>/mycontext</path> </configuration> </plugin> ... </plugins> ... </build> ... </project>