我应该在哪里设置 Tomcat 的上下文路径?

我应该在哪里设置 Tomcat 的上下文路径?

我经常问的关于 Tomcat 的问题。Tomcat 文档<Context>

不建议将元素直接放置在 server.xml 文件中。

此属性只能使用在 server.xml 中静态定义 Context 时。在所有其他情况下,路径将从 .xml 上下文文件或 docBase 使用的文件名推断出来。

即使在 server.xml 中静态定义 Context,也不得设置此属性,除非 docBase 不在 Host 的 appBase 下,或者 deployOnStartup 和 autoDeploy 都为 false。如果不遵循此规则,可能会导致双重部署。

问题:

1)我应该在哪里设置我的上下文path(没有ROOT.war和ROOT.xml)(我必须在server.xml,但不推荐)

2)什么是双重部署以及何时发生?

3)如果我将上下文设置path"",并且我在下一个条目中docBase设置:/opt/tomcat/conf/Catalina/mysite.dom/mysite.xmlcatalina.out

17-Aug-2018 10:24:25.883 WARNING [main] org.apache.catalina.startup.HostConfig.deployDescriptor The path attribute with value [] in deployment descriptor [/opt/tomcat/conf/Catalina/mp.org/mp.xml] has been ignored
17-Aug-2018 10:24:25.890 WARNING [main] org.apache.catalina.startup.HostConfig.deployDescriptor A docBase [/var/www/ModularPlatform/target/web/mp] inside the host appBase has been specified, and will be ignored

但我可以通过这条途径解决——这是工作。

3.1 它为什么有效?

3.2 为什么 tomcat 试图忽略这一点?

4) 还有catalina.out下一条条目:

17-Aug-2018 10:24:26.047 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/var/www/mysite/target/web/ROOT]

tomcat为什么要创建ROOT目录?

我有 Tomcat 9.0.10。

感谢您的耐心。

PS,抱歉我的英语不好。

相关内容