【发布时间】:2020-02-11 20:06:32
【问题描述】:
我确实有一个 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 仍然是空的。
阅读文档后,我发现必须使用作为主机容器的 copyXML 参数更新 server.xml。 文档说:
复制XML 如果您希望在部署应用程序时将嵌入在应用程序中的上下文 XML 描述符(位于 /META-INF/context.xml)复制到 xmlBase,则设置为 true。在随后的启动中,复制的上下文 XML 描述符将优先于嵌入在应用程序中的任何上下文 XML 描述符使用,即使嵌入在应用程序中的描述符是更新的。该标志的值默认为 false。注意如果deployXML 为false,该属性将不起作用。
我的主机看起来像
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true" copyXML="true">
</Host>
重启服务器并重新部署应用后,/conf/Catalina/localhost 仍然为空。
您有什么建议吗?为了使用自定义 context.xml 必须采取哪些措施?
【问题讨论】:
-
文件应该是
src/main/webapp/META-INF,我相信名字应该是context.xml(小写)。 -
@M.Deinum 抱歉,打错字了
标签: java spring-boot tomcat deployment tomcat9