当我将grails生成的war文件部署到jetty时,我收到以下错误。我的问题是我们如何告诉grails在哪里查找这个配置文件?它适用于grails run-app,因为它从该文件存在的项目库运行,但在运行jetty时会出现此错误。
org.codehaus.groovy.grails.commons.cfg.ConfigurationHelper - 无法加载指定的配置位置文件:./ grails-app / conf / something-config.properties
答案 0 :(得分:2)
如果你将文件与war捆绑在一起,那么将它放在grails-app/conf
中应该把它放在类路径的根目录中。如果没有,则将其移至src/java
,因为这肯定适用于run-app和战争。然后在Config.groovy中将其注册为外部配置:
grails.config.locations = ["classpath:something-config.properties"]
如果你想从战争中单独部署它(例如,让一个战争在多个部署中运行,每个部署都有自己的配置文件),那么你将对Config.groovy进行相同的更改,但是将其复制到某个地方Jetty的类路径。我对Jetty并不熟悉,但我知道Tomcat的lib目录在它的类路径中,所以我把这样的文件放在那里。我假设Jetty有一个类似的位置,您可以放置应加载的罐子和资源。
答案 1 :(得分:1)
答案 2 :(得分:1)
这是一个很好的问题。我的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"]
// }