Tomcat 配置在具有不同 web.xml 的不同端口上托管 webapp

Tomcat Configuration to host a webapp on different ports with different web.xml

我想使用具有两个不同部署描述符的两个不同端口来部署我的 webapp。 有办法吗?我知道如何在多个端口上部署 webapp。想知道我们是否可以为每个连接器上部署的应用程序提供单独的部署描述符。

<Service name="serviceA">
    <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="10" 
               enableLookups="false" acceptCount="100"
               connectionTimeout="10000" disableUploadTimeout="true" 
               useBodyEncodingForURI="true"/>
    <Engine name="serviceA" defaultHost="localhost" jvmRoute="host1">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase" />
            <Host name="localhost" appBase="webapps" unpackWARs="true"
                  autoDeploy="false" xmlValidation="false"
                  xmlNamespaceAware="false" xmlBase="PATH_TO_CUSTOM_web.xml">
                    <Context docBase="browser" path="/browser" reloadable="false"/>
            </Host>
    </Engine>
</Service>
<Service name="serviceB">
    <Connector port="8081" maxHttpHeaderSize="8192" maxThreads="10" 
               enableLookups="false" acceptCount="100"
               connectionTimeout="10000" disableUploadTimeout="true" 
               useBodyEncodingForURI="true"/>
    <Engine name="serviceB" defaultHost="localhost" jvmRoute="host1">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase" />
            <Host name="localhost" appBase="webapps" unpackWARs="true"
                  autoDeploy="false" xmlValidation="false"
                  xmlNamespaceAware="false" xmlBase="PATH_TO_CUSTOM_web.xml">
                    <Context docBase="browser" path="/browser" reloadable="false"/>
            </Host>
    </Engine>
</Service>

类似于 xmlBase="PATH_TO_CUSTOM_web.xml"

可以指定部署描述符的绝对路径而不是默认值。

altDDName

参考:https://tomcat.apache.org/tomcat-8.5-doc/config/context.html