2012-12-21 9 views
14

Ho bisogno di aggiungere alcuni file di proprietà alla mia applicazione. Ho aggiunto questo file alla directory controller, ma non riesco a caricarli (no in classpath?) - InputStream è nullo. Dove si può accedere a questo file?Dove mettere le risorse?

public class Application extends Controller { 

    static { 
     try { 
      Properties p = new Properties(); 
      InputStream in = Application.class.getClassLoader().getResourceAsStream("accounts.properties"); 
      if(in != null) { 
       p.load(in); 
       in.close(); 
      } else { 
       error("null inputstream"); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     }  
    } 

    // Actions below 
    // ... 
} 

risposta

23

devi mettere nella cartella conf del gioco app.

È inoltre possibile utilizzare la sottocartella nella directory conf.

Per esempio:

conf/foo/bar.txt 

è possibile accedere utilizzando:

InputStream in = MyClass.class. getResourceAsStream("/foo/bar.txt") 

È inoltre possibile aggiungere una directory di risorse personalizzate nella vostra app, aggiornando il file project/Build.scala e aggiungendo:

val main = play.Project(appName, appVersion, appDependencies).settings(
     ... 
     resourceDirectory in Compile <<= baseDirectory/"myresources" 
     ... 
) 
+5

Con le versioni più recenti di 'sbt', si scriverebbe:' resourceDirectories in Compile + = baseDirectory.value/" MyResources "' –

Problemi correlati