2012-05-01 12 views
7

Tengo una pregunta sobre la carga de propiedades desde archivos de configuración personalizados. He intentado dos enfoques diferentes para cargar mi archivo oauth.properties, pero no puedo ponerme a trabajar, así que espero que alguien aquí pueda ayudarme.Archivos de configuración personalizados - ¡Jugar! Framework 2.0

El primer enfoque que intenté fue añadir el archivo en el directorio conf y hacer referencia a él de esta manera:

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

Pero que acabamos de volver NULL.

El segundo enfoque I intentos fue la de añadir:

@include.oauthProperties = oauth.properties 

al archivo application.conf y luego hacer referencia a ella en mi regulador como:

String clientId = oauthProperties.clientId; 

Sin embargo esto no se compila.

¿Alguien puede arrojar algo de luz sobre lo que estoy haciendo mal aquí?

Respuesta

12

No estoy seguro de si conf es parte de la ruta de clases. Entonces probaría /conf/oauth.properties o pondría el archivo en el classpath. Además, debe usar Play.application.classloader() en lugar de Classloader.

Sobre el include: sigo pensando que es necesario llamar a Play.application().configuration().get("clientID");

Para analizar la situación puede iniciar la aplicación con -Dconfig.trace=loads y analizar la configuración con Play.application().configuration().root().render().

Espero que esto le dé suficientes pistas para que pueda resolver su problema.

16

Lo que funcionó para mí con un archivo en /conf:

import com.typesafe.config.ConfigFactory 

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

En un caso genérico, que lleven cualquier archivo en el directorio "/ conf", usando Juega 2.2 se puede hacer de la siguiente manera (nota que "/ conf" está en el classpath, por lo que no debe incluirlo).

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

Si desea utilizar scala.io.Source también se puede hacer algo como

Source.fromFile(Play.getFile("path-in-your-play-project")) 
Cuestiones relacionadas