Как Grails знает, где искать файлы свойств и можно ли переопределить это местоположение? - PullRequest
1 голос
/ 02 марта 2012

При развертывании моего военного файла, сгенерированного Граалсом, на пристани я получаю следующую ошибку. Мой вопрос, как де мы говорим Grails, где искать этот файл конфигурации? Он отлично работает для Grails Run-App, потому что он запускается из базы проекта, где существует этот файл, но выдает эту ошибку при запуске с Jetty.

org.codehaus.groovy.grails.commons.cfg.ConfigurationHelper - Невозможно загрузить указанный файл расположения конфигурации: ./ grails-app / conf / кое-что-config.properties

Ответы [ 3 ]

2 голосов
/ 02 марта 2012

Если вы связываете файл с войной, то, поместив его в grails-app/conf, вы должны поместить его в корень пути к классам. Переместите его на src/java, если это не так, поскольку это определенно будет работать как с run-app, так и с войной. Затем зарегистрируйте его как внешний конфиг в Config.groovy:

grails.config.locations = ["classpath:something-config.properties"]

Если вы хотите развернуть его отдельно от войны (например, иметь одну войну, которая работает в нескольких развертываниях, каждый со своим собственным файлом конфигурации), то вы должны внести то же изменение в Config.groovy, но скопировать его куда-нибудь Путь к пристани. Я не очень знаком с Jetty, но я знаю, что lib dir Tomcat находится в его classpath, поэтому я помещаю туда файлы вроде этого. Я предполагаю, что для Jetty есть аналогичное место, где вы можете поместить банки и ресурсы, которые должны быть загружены.

1 голос
/ 02 марта 2012

Хороший вопрос. Мой Config.groovy закомментировал эти строки. Интересно, у вас есть специальный внешний конфиг, который вы пытаетесь прочитать:

// locations to search for config files that get merged into the main config
// config files can either be Java properties files or ConfigSlurper scripts

// grails.config.locations = [ "classpath:${appName}-config.properties",
//                             "classpath:${appName}-config.groovy",
//                             "file:${userHome}/.grails/${appName}-config.properties",
//                             "file:${userHome}/.grails/${appName}-config.groovy"]

// if(System.properties["${appName}.config.location"]) {
//    grails.config.locations << "file:" + System.properties["${appName}.config.location"]
// }
1 голос
/ 02 марта 2012

Вы можете использовать внешние конфигурации

...