就读取Properties文件问题回复itVincent

就读取Properties文件问题回复itVincent

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/ 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();

              }

执行后的结果如下:(正确)

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@ 13c 4c 09 [Document: name null

]

action  document  is  :  org.dom4j.tree.DefaultDocument@ 13c 4c 09 [Document: name

null]

note  List is : 1

java home  node  is  :  org.dom4j.tree.DefaultElement@f 1f 34a [Element: <java att

ributes: []/>]

the value of the java node  is  :  c:\jdk

 

两次的结果不同点的分析:

       (主要看蓝色的代码部分,文件的存放位置的不同)

       第一种方法,配置文件在 WEB-INF/classes/ com/yourcompany/struts/config.properties 目录下放着。也就是在包目录下。

       第二种方法,配置文件在 WEB-INF/classes/ 目录下存放。也就是根目录下。

       所以如果用第二种方法来读第一种配置文件,就会出错。

 
--------------------------------------------------------------------------------------------------------------
以上是我的个人见解,欢迎批评指正 [email protected]



|----------------------------------------------------------------------------------------|
                           版权声明  版权所有 @zhyiwww
            引用请注明来源 http://www.blogjava.net/zhyiwww   
|----------------------------------------------------------------------------------------|

你可能感兴趣的:(就读取Properties文件问题回复itVincent)