【发布时间】:2014-04-04 08:04:58
【问题描述】:
代码:
public void initialize() {
Properties p = new Properties();
try {
p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("database.properties"));
classForname = p.getProperty("classForname");
url = p.getProperty("url");
username = p.getProperty("user");
password = p.getProperty("password");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(classForname);
System.out.println(url);
System.out.println(username);
System.out.println(password);
}
Netbean 中的这段代码一直运行良好。
但是当我复制到 Eclipse 时,它在运行项目时无法从属性文件中加载信息。
运行一个文件就可以了
我将属性文件放在默认包 (Netbean) 和 /src/database.properties(Eclipse) 中
请帮帮我!!
这是一些日志:
Apr 04, 2014 3:47:48 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Login] in context with path [/WebBasic] threw exception
java.lang.NullPointerException: Connection is null !
at my.Dao.ConnectDatabase.getConnect(ConnectDatabase.java:73)
at my.Dao.UserDAO.checkUser(UserDAO.java:40)
at my.Servlet.Login.processRequest(Login.java:46)
at my.Servlet.Login.doGet(Login.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
【问题讨论】:
-
你有异常吗?还是代码根本没有执行?
-
我定义了一个异常,因为创建连接时没有信息。我对 netbean 和 ecrise 之间的路径有些不同。
-
您在读取属性时是否收到 FileNotFoundException 异常?
-
@TanmayPatil:没有
FileNotFoundException和getResourceAsStream(),它只是返回null。不过,p.load(null)可能会抛出 NPE。