为什么电梯找不到我的“db.properties”

时间:2011-11-14 13:59:37

标签: classpath lift

在电梯项目中,我将数据库配置放在名为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/classesdb.properties就在那里!哪里错了?

1 个答案:

答案 0 :(得分:1)

您发布的代码应该有效 - 您可以尝试

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

或者你可以试试内置的Lift Props meccano: http://www.assembla.com/wiki/show/liftweb/Properties

如果您使用Mapper(= Lift附带的持久性框架),您可能会看一下: http://www.assembla.com/spaces/liftweb/wiki/Mapper

如果一切都失败了 - 请问友好的电梯社区: http://groups.google.com/group/liftweb

希望有所帮助 保罗