java - 防止上下文 XML 在 Tomcat 6 中被覆盖

标签 java tomcat jndi

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

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

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

谢谢!

最佳答案

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

  • 源代码/测试/资源
  • 源代码/产品/资源

然后您可以修改您的 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 配置文件参数构建 war

mvn -Pprod package

关于java - 防止上下文 XML 在 Tomcat 6 中被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9584992/

相关文章:

jndi - 如何使用嵌入式 Tomcat 容器在 Spring Boot 中创建 JNDI 上下文

java - 从 Tomcat 6 访问 JBoss AS 7.x 中的 EJB 时出现问题

java - 如何在运行时获取端口绑定(bind)信息? (JBoss 5.1)

java - 是否可以仅使某些选项卡可聚焦(JTabbedPane)?

java - 是什么导致 "NoSuchMethodError: org.springframework.beans.BeanWrapper.setAutoGrowCollectionLimit(I)V?"

java - 井字游戏树

java - 在本地设置中通过 JConsole 监控 Tomcat

java - 正则表达式否定无法正常工作

Apache Web 服务器重定向发布请求

jsp - JSP 与 Tomcat 中的 NullPointerException