2012-05-01 3 views
7

사용자 지정 구성 파일에서 속성을로드하는 것에 대한 질문이 있습니다. 나는 내 oauth.properties 파일을로드하는 두 가지 접근 방법을 시도했지만 시도 할 수 없으므로 누군가가 나를 도와 줄 수 있기를 바랍니다.사용자 지정 구성 파일 - 재생! Framework 2.0

내가 시도한 첫 번째 방법은 conf 디렉토리 에 파일을 추가하고 thusly 히이를 참조하는 것이 었습니다 :

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

을하지만 그건 그냥 NULL를 반환했습니다.

String clientId = oauthProperties.clientId; 

그러나이 컴파일되지 않습니다 : 같은 내 컨트롤러를

@include.oauthProperties = oauth.properties 

application.conf 파일에 다음 참조 :

I 시도 두 번째 방법은 추가했다.

내가 뭘 잘못하고 있는지 누군가가 밝힐 수 있습니까?

답변

12

conf가 클래스 경로에 포함되어 있는지 확실하지 않습니다. 그래서 나는 /conf/oauth.properties을 시도하거나 파일을 classpath에 넣을 것이다. 또한 Classloader 대신 Play.application.classloader()을 사용해야합니다. [정보

은 다음과 같습니다 : 난 아직도 당신이 상황이 -Dconfig.trace=loads와 응용 프로그램을 시작하고 Play.application().configuration().root().render()과 구성을 분석 할 수 있습니다를 분석하기 위해 Play.application().configuration().get("clientID");

를 호출 할 필요가 있다고 생각합니다.

희망 사항은 문제를 해결할 수 있도록 충분한 힌트를 제공합니다. /conf에있는 파일과 나를 위해 일한 무엇

16

: 일반적인 경우

import com.typesafe.config.ConfigFactory 

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

은 (주 다음과 같이 수행 할 수 있습니다 2.2 재생 사용하여 "/ conf의"디렉토리에서 어떤 파일을 가져가 "/ conf"가 클래스 경로에 있으므로 포함하지 않아야합니다. 당신이 scala.io.Source를 사용하려면

Play.application().classloader().getResource("any_file"); 
-2

당신은 또한

Source.fromFile(Play.getFile("path-in-your-play-project")) 
과 같은 작업을 수행 할 수 있습니다