Почему Лифт не может найти мои "db.properties" - PullRequest
4 голосов
/ 14 ноября 2011

В проекте лифта я помещаю конфигурации БД в файл с именем db.properties

/src/main/resources/db.properties

И в моем Boot.scala я читаю это как:

val input = this.getClass.getResourceAsStream("db.properties")
println("### input: " +input)

val db = new java.util.Properties
db.load(input)

val url = db.getProperty("url")  
println("#### url:" + url)

Тогда я начинаю sbt:

sbt prepare-web jetty-start

Консоль выводит некоторые ошибки:

### input: null
21:48:55.906 [main] ERROR n.liftweb.http.provider.HTTPProvider - Failed to Boot! Your application may not run properly
java.lang.NullPointerException: null
    at java.util.Properties$LineReader.readLine(Properties.java:418) ~[na:1.6.0_27]
    at java.util.Properties.load0(Properties.java:337) ~[na:1.6.0_27]
    at java.util.Properties.load(Properties.java:325) ~[na:1.6.0_27]
    at bootstrap.liftweb.Boot.boot(Boot.scala:21) ~[classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.

Странно, лифт не может найти db.properties!

Я проверил target/webapp/WEB-INF/classes, и db.properties есть! Где не так?

1 Ответ

1 голос
/ 14 ноября 2011

Код, который вы разместили, должен работать - вы можете попробовать

val input = getClass.getResourceAsStream("/db.properties")

В качестве альтернативы вы можете попробовать встроенный механизм Lift Props: http://www.assembla.com/wiki/show/liftweb/Properties

Если вы используете Mapper (= постоянная среда, которая поставляется с Lift), вы можете взглянуть на: http://www.assembla.com/spaces/liftweb/wiki/Mapper

Если все не получается - спросите дружелюбное лифтовое сообщество: http://groups.google.com/group/liftweb

Надеюсь, это поможет Пол

...