Предотвращение переопределения контекста XML в Tomcat 6 - PullRequest
3 голосов
/ 06 марта 2012

Я использую JNDI для чтения конфигурации базы данных из context.xml моего приложения.В настоящее время у меня есть такая настройка: [appname] .xml в conf / Catalina / localhost.Однако при повторном развертывании приложения этот файл перезаписывается пустым контекстным файлом, и мне приходится копировать его обратно в каталог conf / Catalina / localhost.У меня разные настройки базы данных и т. Д. Для моих тестовых и рабочих серверов, и поэтому я не хочу помещать файл контекста в META-INF в файл WAR, но хотел бы просто сохранить его в каталоге conf / Catalina / localhost,Это возможно?

Есть ли где-нибудь лучше разместить конфигурацию базы данных?

Я также хотел бы избежать помещения конфигурации в файл server.xml, хотя я знаю, что это возможно.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 июня 2013

Проблема заключается в том, что при отмене развертывания был удален файл context.xml веб-приложения, установленный в Catalina / localhost / .xml

Если вы не хотите удалять файл, вам нужно просто повторно развернуть его, а не удалить / развернуть

0 голосов
/ 29 марта 2012

Я бы сказал, изучите использование профилей maven (один для prod, один для теста) и наличие разных определений ресурсов для каждого профиля. Вы можете хранить ваши общие файлы в src / main / resources, а затем иметь папку для каждого типа профиля, в которой будут храниться определенные файлы конфигурации:

  • SRC / тест / ресурсы
  • ЦСИ / прод / ресурсы

Затем вы можете изменить свой 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>

наконец, вы можете построить войну, используя аргумент профиля -Pprod или -Ptest для mvn

mvn -Pprod package
...