我确实有一个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必须采取哪些操作?
我已经想通了。我的构建脚本没有正确复制文件,文件名不是“context. xml”而是“appName.xml”,tomcat没有拾取它。