【问题标题】:Tomcat7 rewrites my context.xml when extracting war fileTomcat7在提取war文件时重写了我的context.xml
【发布时间】:2016-10-13 10:59:00
【问题描述】:

我的 java 应用程序有多个版本的外部 context.xml,每个环境一个。计划是拥有一个 war 文件并使用正确的 context.xml 进行生产、登台、开发等。

我目前将 context.xml 复制/符号链接到 /usr/local/apache-tomcat-7.0.72/conf/Catalina/localhost/myapp.xml。然后我从我的来源创建战争文件并将其复制到/usr/local/apache-tomcat-7.0.72/webapps。 catalina 正在运行并分解 webapps 文件夹中的 war 文件。同时它会从 conf 文件夹中删除我的 myapp.xml。出于这个原因,我的应用程序没有加载正确的配置并失败。如果我再次复制 myapp.xml 并重新启动 tomcat 就可以了。

有没有办法告诉tomcat在提取war文件时不要删除我的conf文件?或者有没有更好的地方存放external context.xml

【问题讨论】:

  • 为什么? Tomcat 会将 META-INF/context.xml 中的那个复制到你的 WAR 文件中。您无需自己进行任何手动复制。
  • @EJP context.xml 不是代码存储库的一部分。开发人员有自己的用于测试目的的凭据,并且不知道实时数据库凭据。一旦war文件上传到artifactory,就可以使用正确的context.xml在不同的环境中使用。

标签: java tomcat spring-boot


【解决方案1】:

我猜你在这个 context.xml 中有一些用于生产或阶段等的参数。将它们存储在那里并不是一个好主意,因为更好的方法是使用属性启动服务器并在 webapp 中读取它们,这样你就不会犯错误。

看这里:https://eureka.ykyuen.info/2009/12/15/tomcat-setting-java-system-properties-for-webapps/

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 2018-11-02
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 2020-11-29
    • 2013-05-05
    相关资源
    最近更新 更多