itVincent ,
非常感謝您的回復(fù).看到您的回復(fù),我就作了一下測試.
我的測試代碼如下:
?????????????
//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();
????????????? }
?
我是在一個(gè)
action
中寫的這段代碼
.
執(zhí)行后的結(jié)果如下:(錯(cuò)誤)
properties? in? is? :?? null
2006-10-24 20:36:59 org.apache.struts.action.RequestProcessor processExc
警告
: Unhandled Exception thrown: class java.lang.NullPointerException
?
頁面的錯(cuò)誤是:
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/5.0.28 logs.
?
??????
然后我又作了如下的測試:
????????????? 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();
????????????? }
執(zhí)行后的結(jié)果如下:(正確)
properties? in? is? :?? java.io.ByteArrayInputStream@257b34
JAVA_HOME?? :? --? c:jdk
xml file? url? is? :? file:/D:/jakarta-tomcat-5.0.28/webapps/StrutsDemo/WEB-INF/
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@13c4c09 [Document: name null
]
action? document? is? :? org.dom4j.tree.DefaultDocument@13c4c09 [Document: name
null]
note? List is : 1
java home? node? is? :? org.dom4j.tree.DefaultElement@f1f34a [Element: <java att
ributes: []/>]
the value of the java node? is? :? c:\jdk
?
兩次的結(jié)果不同點(diǎn)的分析:
??????
(主要看藍(lán)色的代碼部分,文件的存放位置的不同)
??????
第一種方法,配置文件在
WEB-INF/classes/
com/yourcompany/struts/config.properties
目錄下放著。也就是在包目錄下。
??????
第二種方法,配置文件在
WEB-INF/classes/
目錄下存放。也就是根目錄下。
??????
所以如果用第二種方法來讀第一種配置文件,就會出錯(cuò)。
?
--------------------------------------------------------------------------------------------------------------
以上是我的個(gè)人見解,歡迎批評指正.zhyiwww@163.com
|----------------------------------------------------------------------------------------|
版權(quán)聲明 版權(quán)所有 @zhyiwww
引用請注明來源 http://www.tkk7.com/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2006-10-24 21:03
zhyiwww 閱讀(3526)
評論(3) 編輯 收藏 所屬分類:
discuss