itVincent ,
非常感謝您的回復.看到您的回復,我就作了一下測試.
我的測試代碼如下:
?????????????
//InputStream in=LoginAction.class.getClassLoader().getResourceAsStream("com.yourcompany.struts.config.properties");
?????????????
InputStream in=LoginAction.class.getClassLoader().getResourceAsStream("com//yourcompany//struts//config.properties");
?????????????
????????????? System.out.println("properties? in? is? :?? "+in);
????????????? Properties? p=new Properties();
????????????? try {
???????????????????? p.load(in);
???????????????????? String h=p.getProperty("JAVA_HOME");
???????????????????? System.out.println("JAVA_HOME?? :? --? "+h);??
????????????? } catch (IOException e1) {
???????????????????? e1.printStackTrace();
????????????? }
我是在一個
action
中寫的這段代碼
.
執行后的結果如下:(錯誤)
properties? in? is? :?? null
2006-10-24 20:36:59 org.apache.struts.action.RequestProcessor processExc
警告
: Unhandled Exception thrown: class java.lang.NullPointerException
頁面的錯誤是:
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException
?????? org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
?????? org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
?????? org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
?????? org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
?????? org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
?????? javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
?????? javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
?????? java.util.Properties$LineReader.readLine(Properties.java:365)
?????? java.util.Properties.load(Properties.java:293)
?????? com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:134)
?????? org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
?????? org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
?????? org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
?????? org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
?????? javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
?????? javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/
??????
然后我又作了如下的測試:
????????????? InputStream in1=LoginAction.class.getClassLoader().getResourceAsStream("config.properties");
?????????????
????????????? System.out.println("properties? in? is? :?? "+in1);
????????????? Properties? p1=new Properties();
????????????? try {
???????????????????? p1.load(in1);
???????????????????? String h1=p1.getProperty("JAVA_HOME");
???????????????????? System.out.println("JAVA_HOME?? :? --? "+h1);
????????????? } catch (IOException e1) {
???????????????????? // TODO Auto-generated catch block
???????????????????? e1.printStackTrace();
????????????? }
執行后的結果如下:(正確)
properties? in? is? :?? java.io.ByteArrayInputStream@257b34
JAVA_HOME?? :? --? c:jdk
xml file? url? is? :? file:/D:/jakarta-tomcat-
classes/config.xml
inputStream of the xml file? is? :? java.io.BufferedInputStream@ca5bff
reader?? :?? org.dom4j.io.SAXReader@1cd3dd7
document doc? is? :? org.dom4j.tree.DefaultDocument@
]
action? document? is? :? org.dom4j.tree.DefaultDocument@
null]
note? List is : 1
java home? node? is? :? org.dom4j.tree.DefaultElement@f
ributes: []/>]
the value of the java node? is? :? c:\jdk
兩次的結果不同點的分析:
??????
(主要看藍色的代碼部分,文件的存放位置的不同)
??????
第一種方法,配置文件在
WEB-INF/classes/
com/yourcompany/struts/config.properties
目錄下放著。也就是在包目錄下。
??????
第二種方法,配置文件在
WEB-INF/classes/
目錄下存放。也就是根目錄下。
??????
所以如果用第二種方法來讀第一種配置文件,就會出錯。
--------------------------------------------------------------------------------------------------------------
以上是我的個人見解,歡迎批評指正.zhyiwww@163.com
|----------------------------------------------------------------------------------------|
版權聲明 版權所有 @zhyiwww
引用請注明來源 http://www.aygfsteel.com/zhyiwww
|----------------------------------------------------------------------------------------|