Проблема с командой Grails 'war', которая пытается прочитать файл конфигурации - PullRequest
2 голосов
/ 04 августа 2011

Я храню конфигурацию для моего приложения Grails (например, конфигурацию БД) в файле конфигурации XML.Мой DataSource.groovy использует файл конфигурации для получения информации о базе данных.К сожалению, когда я создаю файл War для моей тестовой среды (используя команду, такую ​​как grails test war stb09.war), он запускает мой DataSource.groovy, пытаясь открыть файл, которого нет в моей среде разработки.

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

Спасибо, Роберт

1 Ответ

2 голосов
/ 04 августа 2011

Я предполагаю, что вы делаете что-то подобное в вашем DataSource.groovy файле:

def db = new groovy.util.XmlParser().parse("connection.xml")

Простой и грязный обходной путь, попытайтесь поймать его так:

try {
  def db = new groovy.util.XmlParser().parse("connection.xml")
} catch (Exception e ) {println "Bad timing"}

В своих проектах я использую что-то вроде этого:

environments {
  production {
        grails.config.locations <<  "classpath:${appName}-db-custom.properties"
}}

Таким образом, нет проблем во время упаковки, и во время выполнения вы можете заменить ваш источник данных на значения.

В зависимости от времени, grails сначала загружает данные соединения из скомпилированного DataResource.groovy, а затем помещает их в глобальную конфигурацию. Эти значения затем динамически перезаписываются во время выполнения конфигурацией в файле свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...