2012-05-01 17 views
7

Mam pytanie dotyczące ładowania właściwości z niestandardowych plików konfiguracyjnych. Próbowałem dwa różne podejścia do ładowania mojego pliku oauth.properties, ale nie mogę dostać się do pracy, więc mam nadzieję, że ktoś tutaj może mi pomóc.Własne pliki konfiguracyjne - Graj! Framework 2.0

Pierwsze podejście próbowałem było dodać plik do katalogu conf i odniesienie go thusly:

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

Ale to właśnie wrócił NULL.

Drugie podejście I stara się dodać:

@include.oauthProperties = oauth.properties 

do pliku application.conf a następnie odwoływać w mój kontroler jak:

String clientId = oauthProperties.clientId; 

Jednak to nie skompilować.

Czy ktoś może rzucić trochę światła na to, co robię źle?

Odpowiedz

12

Nie jestem pewien, czy conf jest częścią ścieżki klasy. Więc spróbowałbym /conf/oauth.properties lub umieścić plik w ścieżce klas. Ponadto powinieneś użyć Play.application.classloader() zamiast Classloader.

o to: Nadal uważam, trzeba zadzwonić Play.application().configuration().get("clientID");

Aby przeanalizować sytuację można uruchomić aplikację z -Dconfig.trace=loads i analizowania konfiguracji z Play.application().configuration().root().render().

Mam nadzieję, że daje to wystarczającą ilość wskazówek, aby rozwiązać problem.

16

Co pracował dla mnie z plikiem w /conf:

import com.typesafe.config.ConfigFactory 

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

W ogólnej sytuacji, aby pobrać dowolny plik z katalogu „/ conf”, używając Zagraj 2.2 można to zrobić w następujący sposób (zauważmy, że "/ conf" znajduje się w ścieżce klas, więc nie powinieneś go włączać).

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

Jeśli chcesz użyć scala.io.Source można też zrobić coś podobnego

Source.fromFile(Play.getFile("path-in-your-play-project")) 
Powiązane problemy