【问题标题】:Deploying War. Tomcat not taking context.xml from META-INF in consideration部署战争。 Tomcat 未考虑 META-INF 中的 context.xml
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 2018-12-21
    • 1970-01-01
    • 2018-08-30
    相关资源
    最近更新 更多