2012-03-01 14 views
1

grailsがjettyに生成されたwarファイルをデプロイすると、次のエラーが発生します。私の質問は、この設定ファイルをどこで探すべきかGrailsにどのように伝えるかです。このファイルが存在するプロジェクトベースから実行されるため、grail run-appではうまく動作しますが、withing jettyを実行しているときにこのエラーが発生します。Grailsはどのようにプロパティファイルを探すべきかを知っていますが、この場所をうまく使うことができますか?

org.codehaus.groovy.grails.commons.cfg.ConfigurationHelper - 指定されたコンフィグ・ロケーション・ファイルをロードすることができません:./ Grailsのアプリ/ confに/ something-config.properties

あなたが使用することができます

答えて

2

:あなたはあなたが読んしようとしている特殊な外部の設定を持っているのだろうか。実行していなければsrc/javaに移動します。これはrun-appとwarの両方で確実に機能するためです。そして、Config.groovyで外部設定として登録:

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

あなたは戦争とは別に、それを展開する場合(例えば、独自の設定ファイルで複数の展開それぞれに動作するもの戦争を持っている)、あなたはConfig.groovyと同じ変更を行いますが、Jettyのクラスパスのどこかにコピーしてください。私はJettyに慣れていませんが、Tomcatのlibディレクトリがクラスパスにあることを知っています。そこで、このようなファイルを配置します。私は、あなたがジャーとロードすべきリソースを置くことができる場所Jettyのための同類の場所があると仮定します。

+0

それは動作します、私たちは外部のクラスパスファイルを生成していました。 –

1

これは良い質問です。私のConfig.groovyはこれらの行をコメントアウトしています。あなたはそれをクラスパスのルートに置く必要があり、その後grails-app/confにそれを置く、戦争と内のファイルをバンドルしている場合

// 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"] 
// } 
+0

ええ、それは警告を投げましたが、大規模なビルドシステムの一部として環境ごとに生成される外部ファイルが見つかりました。デフォルトのファイルだけでなく外部のファイルも読み込もうとします。デフォルトファイルの代わりにダミーファイルを置くと、警告が取り除かれました。 –

関連する問題