grails app中的classpath属性文件未被使用

时间:2017-03-16 16:41:17

标签: grails properties classpath

我的问题是我在我的类路径中放置了格式良好的属性文件,并告诉grails在我的类路径中查找属性文件,但文件中的属性不会覆盖现有属性。

在我的config.groovy中,我有以下几行:

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

// verified that appName is being used.  It prints out classpath:XXX-config.properties, as expected, where XXX is my appname.
println "grails.config.locations: ${grails.config.locations}"

在我的XXX-config.properties中,我指定了一个不同的数据库连接URL(这是我想要使用的):

dataSource.url=jdbc:postgresql://products.yyyyy.ap-southeast-1.rds.amazonaws.com:5432/mydatabasename

然后我将XXX-config.properties放在我的类路径中并启动tomcat7,但是错误被抛出,说它无法找到我故意伪造的数据库,这意味着数据库属性没有被覆盖。

现在我认为我的类路径是错误的,但我做ps aux | grep tomcat告诉我tomcat7的命令行arg包含“-classpath:/ home / jbu /:_ other_paths_here_”。注意我将我的属性文件放在/home/jbu/XXX-config.properties中。我稍微关注那个领先的冒号,但它似乎没有引起任何其他问题。

所以类路径目录看起来是正确的,所以现在我想也许我的属性文件没有正确格式化,所以我在我的grails.config.locations中添加了一个强化的“文件:/home/jbu/XXX-config.properties” ,找到并成功覆盖了属性,这意味着属性文件本身没有任何问题。

我这里没有更多的想法。有人可以帮助我吗?

旁注:我通过将此行添加到/usr/share/tomcat7/bin/setenv.sh来修改了tomcat7的CLASSPATH变量:

export CLASSPATH="${CLASSPATH}:/home/jbu/"

1 个答案:

答案 0 :(得分:0)

这个(在Grails中有很多其他的东西,似乎)已经被破坏了。叹了口气......我正在使用grails 2.4.5所以我有点惊讶它自1.3.5以来就被打破了。

http://jay-chandran.blogspot.com/2010/10/grails-using-external-properties-file.html

Grails 1.3.5: How to configure Datasource.groovy to either connect to MySQL or SQL Server