2012-05-01 11 views
7

私は、カスタム構成ファイルからプロパティーをロードすることについて質問します。私は 私のoauth.propertiesファイルをロードする2つの異なるアプローチを試しましたが、私は のいずれかを取得することはできませんので、私は誰かが私を助けることができると思っています。カスタム設定ファイル - 再生!フレームワーク2.0

私が試した最初のアプローチは、confディレクトリ にファイルを追加し、thuslyそれを参照することでした:

String oauthPropertiesFile = ClassLoader.getSystemResource("oauth.properties").getFile(); 

をしかし、それはちょうどNULLを返しました。しかし、これはコンパイルされません

String clientId = oauthProperties.clientId; 

application.confファイルに

@include.oauthProperties = oauth.properties 

をして、同じよう 私のコントローラで参照:

第二のアプローチ私試みは、追加することでした。

私がここで間違っていることに誰かが戸惑いましたか?

答えて

12

confがクラスパスの一部であるかどうかわかりません。だから私は/conf/oauth.propertiesを試してみるか、ファイルをクラスパスに入れてください。さらに、Classloaderの代わりにPlay.application.classloader()を使用する必要があります。インクルードについて

は、次のとおりです。私はまだあなたが-Dconfig.trace=loadsでアプリを起動し、Play.application().configuration().root().render()で設定を分析することができ、状況を分析するためにPlay.application().configuration().get("clientID");

をコールする必要があると思います。

これは、あなたの問題を解決できるように十分なヒントを提供します。次のようにそれがあることに注意してください(行うことができます2.2を再生利用し、「/ confに」ディレクトリからすべてのファイルを取得するために、一般的な場合には

import com.typesafe.config.ConfigFactory 

val myConfig = ConfigFactory.load("myfile.properties").getConfig("my.config.prefix") 
16

"/ conf"はクラスパス上にあるので、それを含めないでください)。

Play.application().classloader().getResource("any_file"); 
6

/conf内のファイルと私のために働いた何

-2

あなたがscala.io.Sourceを使用する場合は、また

Source.fromFile(Play.getFile("path-in-your-play-project")) 
ような何かを行うことができます
関連する問題