提问者:小点点

部署战争。Tomcat没有考虑META-INF中的context. xml


我确实有一个Spring Boot应用程序,它为tomcat使用自定义context. xml。context.xml包含属性,定义了Spring活动配置文件

<Context>
    <Environment name="spring.profiles.active" value="profileName" type="java.lang.String" override="false" />
</Context>

文件位置是 /src/main/webapps/META-INF我希望文件部署到tomcat后,tomcat会自动选择上下文xml并抛出到conf/catalina/localhost/

事实证明,战争已经部署,但conf/catalina/localhost仍然空无一人。

阅读文档后,我发现server. xml必须更新为作为Host容器的copy XML参数。留档说:

CopyXML如果您希望在部署应用程序时将嵌入在应用程序中的上下文XML描述符(位于 /META-INF/context.xml)复制到xmlBase,则设置为true。在后续启动时,将优先使用复制的上下文XML描述符,而不是嵌入在应用程序中的任何上下文XML描述符,即使嵌入在应用程序中的描述符是最近的。标志的值默认为false。请注意,如果部署XML为false,则此属性将无效。

我的主机看起来像

<Host name="localhost"  appBase="webapps"
                  unpackWARs="true" autoDeploy="true" copyXML="true">
            </Host>

重新启动服务器并重新部署应用程序后, /conf/Catalina/localhost仍然为空。

您有什么建议,为了使用自定义context. xml必须采取哪些操作?


共1个答案

匿名用户

我已经想通了。我的构建脚本没有正确复制文件,文件名不是“context. xml”而是“appName.xml”,tomcat没有拾取它。