当前位置:编程学习 > JAVA >>

通过资源文件读取JDBC相关连接字符串部署在Tomcat上出现Properties$LineReader.readLine(Unknown Source)

我的程序如下:
//这个单体类的一个方法
//内部提供的获取连接的操作
private Connection _getConnection(){
String sDbDriver=null;
String sDbUrl=null;
String sDbUser=null;
String sDbPsw=null;
Connection conn=null;
//读取资源文件的内容
Properties pro=new Properties();
InputStream is = getClass().getResourceAsStream("/fengms/struts/db.properties");
try {
pro.load(is);
} catch (IOException e) {
e.printStackTrace();
}
sDbDriver=pro.getProperty("DbDriver");
sDbUrl=pro.getProperty("DbUrl");
sDbUser=pro.getProperty("DbUser");
sDbPsw=pro.getProperty("DbPsw");

Properties p = new Properties();
p.put("user", sDbUser);
p.put("password", sDbPsw);
try {
//加载数据库驱动程序
Class.forName(sDbDriver).newInstance();
conn=DriverManager.getConnection(sDbUrl, p);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}

finally{
if(is!=null){
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return conn;
}

部署到Tomcat中就出现下面的错误(备注:我使用了Struts1.2的框架):
2011-3-24 22:28:15 org.apache.struts.action.RequestProcessor processException
警告: Unhandled Exception thrown: class java.lang.NullPointerException
2011-3-24 22:28:15 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Unknown Source)
at java.util.Properties.load(Unknown Source)
at fengms.util.DbConnection._getConnection(DbConnection.java:44)
at fengms.util.DbConnection.getConnection(DbConnection.java:30)
at fengms.struts.Impl.userinfoImpl.insertUser(userinfoImpl.java:21)
at fengms.struts.action.RegistAction.execute(RegistAction.java:47)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
--------------------编程问答-------------------- --------------------编程问答-------------------- 求答案 --------------------编程问答-------------------- 你属性文件的路径正确吗?
可能就是InputStream is = getClass().getResourceAsStream("/fengms/struts/db.properties");
括号内的路径不正确。 --------------------编程问答-------------------- /fengms/struts/db.properties
这个db.properties放在哪里? --------------------编程问答-------------------- 已经解决了,谢谢大家 --------------------编程问答-------------------- 怎么解决的啊 --------------------编程问答--------------------
引用 2 楼  的回复:
求答案


把文件放到调用这个配置文件的类同一个目录就可以了。 --------------------编程问答-------------------- 这sb楼主,人家问他都不回,什么人来的,我看是sb一个。。。。。。。。。。。。 --------------------编程问答--------------------
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,