2016-08-19 4 views
0

Ich verwende eine Eigenschaftendatei, um eine Liste gültiger Benutzernamen in einer Java-Webanwendung fest zu codieren.Heroku-Eigenschaftendatei

Die Datei wird im selben Paket wie die Klasse platziert (das ist ein Streben Aktion ist) und lesen sich wie folgt:

Properties prop = new Properties(); 
InputStream input = null; 
input = getClass().getResourceAsStream("login.properties"); 
prop.load(input); 
String[] aprovedUsers = prop.getProperty("approvedUsers").split(","); 

Es funktioniert ok, wenn ich es lokal testen (in einem Apache-Server ausgeführt wird als localhost), aber wenn ich die webapp auf heroku stelle, scheint es, dass es die propoerties Datei nicht lesen kann, wie input ist null.

Gibt es eine besondere Überlegung, die bei der Verwendung von Eigenschaftendateien in heroku berücksichtigt werden muss?

EDIT: Mein procfile ist

web: java $JAVA_OPTS -jar target/dependency/jetty-runner.jar --port $PORT target/*.war 

I Jetty als Container verwenden.

+0

Können Sie Ihre 'Procfile' teilen? – codefinger

+0

Ich habe die 'Procfile' als Ausgabe zur Frage hinzugefügt –

+0

Laufen Sie es lokal mit 'Heroku local'? Können Sie den Fehler so reproduzieren? – codefinger

Antwort

0

Ihre local classpath und heroku classpath sind unterschiedlich. Siehe ClassLoader.getSystemResource, um die Datei zu finden.

FileInputStream stream = new FileInputStream(ClassLoader.getSystemResource("login.properties").getPath()); 
+0

Danke für die Antwort. Es scheint, dass es nicht lokal funktioniert (auf Apache als localhost). Der Fehler ist 'SEVERE: Ausnahme ist während der Verarbeitungsanforderung aufgetreten: null java.lang.NullPointerException' –

+0

@JoseOspina, könnten Sie bitte den Pfad teilen, wo' login.properties' liegt? Ist es in 'Java/Ressourcen'? Ist es in "WEB-INF"? Könnten Sie * .war überprüfen, enthält es 'login.properties' irgendwo? –

+0

Die Datei wird, nachdem sie von Eclipse erstellt wurde, in '\ target \ classes \ coproject \ cpweb \ actions \ json' kopiert. Bevor es erstellt wird, befindet es sich in 'src \ main \ java \ coproject \ cpweb \ actions \ json' –