私の問題は、クラスパスに適切なプロパティファイルを入れて、クラスパスでプロパティファイルを探すようにgrailsに指示しましたが、ファイルのプロパティは既存のものを上書きすることはできません。私config.groovyでgrails appのクラスパスプロパティファイルが使用されていません
私はラインがあります。
:私のXXX-config.propertiesで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}"
を、私は(これは私が使用するものである)別のDB接続URLを指定します
dataSource.url=jdbc:postgresql://products.yyyyy.ap-southeast-1.rds.amazonaws.com:5432/mydatabasename
私はクラスパスとスタートアップのtomcat7にXXX-config.propertiesを入れましたが、意図的に偽のデータベースを見つけることができないというエラーがスローされます。つまり、データベースプロパティがオーバーライドされませんでした。
私はクラスパスが間違っていると思っていますが、私はps aux | grep tomcat
を実行して、tomcat7のコマンドライン引数に "-classpath:/ home/jbu /:_ other_paths_here_"が含まれていると伝えます。注意プロパティファイルは/home/jbu/XXX-config.propertiesに置いています。私はその先行コロンについて少し心配していますが、それは他の問題を引き起こすようではありません。
classpathディレクトリが正しく表示されるので、プロパティファイルの形式が正しくない可能性があるので、grails.configに厳密な "file:/home/jbu/XXX-config.properties"を追加しました。プロパティが見つかって正常に上書きされたため、プロパティファイル自体に何も問題がないことを意味します。
私はもうアイデアはもうありません。誰かが私を助けることができますか?
追記:私は/usr/share/tomcat7/bin/setenv.shするために、この行を追加することによって、tomcat7ためのCLASSPATH変数を変更:
export CLASSPATH="${CLASSPATH}:/home/jbu/"
このプロジェクトを見https://github.com/vahidhedayati/kchatを持っている - 私はあなたがGrailsの2にあると思います - これは例がのconfigsだけでなく、Tomcatの設定実証し、提供それを行うために使用されています - 助けてくれることを望みます – Vahid
@vahidので、env varを設定するか、ファイルパスを正しく指定するプロパティを渡しますか?私の場合、tomcatのインスタンスは私の制御下にありませんし、より高い特権のアカウントとして自動的に起動します。私は簡単に行くことができないと私はこのようなアプリを起動するたびに新しいプロパティをエクスポートするためにTomcatのスクリプトを変更します。しかし、もし私がクラスパスに物を追加することができれば、それは少し簡単です。なぜなら、私はtomcat configsを混乱させる必要がないからです。 – jbu
@vahidはいim on grails 2.4.5。この機能は動作するはずですか?率直に言って私が期待していることをやめて少しだけサポートと回答を見つけることができなかったgrailsでうんざりしていました – jbu