【问题标题】:Preventing context XML from being override in Tomcat 6防止在 Tomcat 6 中覆盖上下文 XML
【发布时间】:2012-03-06 13:51:58
【问题描述】:

我正在使用 JNDI 从我的应用程序的 context.xml 中读取数据库配置。我目前进行此设置的方式是将 [appname].xml 放在 conf/Catalina/localhost 中。但是,当我重新部署应用程序时,该文件会被一个空的上下文文件覆盖,我必须将自定义文件复制回 conf/Catalina/localhost 目录。我的测试和生产服务器有不同的数据库设置等,因此不想将上下文文件放在 WAR 文件中的 META-INF 中,而只想将其保留在 conf/Catalina/localhost 目录中.这可能吗?

有没有更好的地方放数据库配置?

我也想避免将配置放在 server.xml 文件中,尽管我知道这是可能的。

谢谢!

【问题讨论】:

  • 你使用什么工具来组装你的战争(Ant,Maven,...)?

标签: java tomcat jndi


【解决方案1】:

我会说考虑使用 maven 配置文件(一个用于生产,一个用于测试),并且每个配置文件具有不同的资源定义。您可以将常用文件保存在 src/main/resources 中,然后为每种配置文件类型创建一个文件夹以保存特定的配置文件:

  • src/test/resources
  • src/prod/资源

然后您可以修改您的 pom 以定义每个配置文件及其相关资源:

<project>
  <profiles>
    <profile>
      <id>prod</id>
      <build>
        <resources>
          <resource>
            <directory>src/main/resources</directory>
            <targetPath>${project.build.outputDirectory}</targetPath>
          </resource>
          <resource>
            <directory>src/prod/resources</directory>
            <targetPath>${project.build.outputDirectory}</targetPath>
          </resource>
        </resources>
      </build>
    </profile>

    <profile>
      <id>test</id>
      <build>
        <resources>
          <resource>
            <directory>src/main/resources</directory>
            <targetPath>${project.build.outputDirectory}</targetPath>
          </resource>
          <resource>
            <directory>src/test/resources</directory>
            <targetPath>${project.build.outputDirectory}</targetPath>
          </resource>
        </resources>
      </build>
    </profile>
  </profiles>
</project>

最后你可以使用 mvn 的 -Pprod 或 -Ptest 配置文件参数来构建战争

mvn -Pprod package

【讨论】:

    【解决方案2】:

    问题是取消部署删除了安装在 Catalina/localhost/.xml 中的 webapp 特定 context.xml 文件

    如果您不想删除文件,则只需重新部署它,而不是取消部署/部署

    【讨论】:

      猜你喜欢
      • 2012-05-13
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 2014-05-26
      • 1970-01-01
      相关资源
      最近更新 更多