itVincent ,
非常感谢您的回复.看到您的回复,我就作了一下测试.<!----><o:p>
我的测试代码如下:<o:p>
//InputStream in=LoginAction.class.getClassLoader().getResourceAsStream("com.yourcompany.struts.config.properties");<o:p>
InputStream in=LoginAction.class.getClassLoader().getResourceAsStream("com//yourcompany//struts//config.properties");<o:p>
<o:p>
</o:p>
System.out.println("properties in is : "+in);<o:p>
Properties p=new Properties();<o:p>
try {<o:p>
p.load(in);<o:p>
String h=p.getProperty("JAVA_HOME");<o:p>
System.out.println("JAVA_HOME : -- "+h); <o:p>
} catch (IOException e1) {<o:p>
e1.printStackTrace();<o:p>
}<o:p>
<o:p> </o:p>
我是在一个
action
中写的这段代码
.<o:p>
执行后的结果如下:(错误)<o:p>
properties in is : null<o:p>
2006-10-24 20:36:59 org.apache.struts.action.RequestProcessor processExc<o:p>
警告
: Unhandled Exception thrown: class java.lang.NullPointerException<o:p>
<o:p> </o:p>
页面的错误是:<o:p>
message <o:p>
<o:p> </o:p>
description The server encountered an internal error () that prevented it from fulfilling this request.<o:p>
<o:p> </o:p>
exception <o:p>
<o:p> </o:p>
javax.servlet.ServletException<o:p>
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)<o:p>
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)<o:p>
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)<o:p>
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)<o:p>
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)<o:p>
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)<o:p>
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<o:p>
<o:p> </o:p>
<o:p> </o:p>
root cause <o:p>
<o:p> </o:p>
java.lang.NullPointerException<o:p>
java.util.Properties$LineReader.readLine(Properties.java:365)<o:p>
java.util.Properties.load(Properties.java:293)<o:p>
com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:134)<o:p>
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)<o:p>
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)<o:p>
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)<o:p>
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)<o:p>
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)<o:p>
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<o:p>
<o:p> </o:p>
<o:p> </o:p>
note The full stack trace of the root cause is available in the Apache Tomcat/<!----> logs.<o:p>
<o:p> </o:p>
然后我又作了如下的测试:<o:p>
InputStream in1=LoginAction.class.getClassLoader().getResourceAsStream("config.properties");<o:p>
<o:p>
</o:p>
System.out.println("properties in is : "+in1);<o:p>
Properties p1=new Properties();<o:p>
try {<o:p>
p1.load(in1);<o:p>
String h1=p1.getProperty("JAVA_HOME");<o:p>
System.out.println("JAVA_HOME : -- "+h1);<o:p>
} catch (IOException e1) {<o:p>
// TODO Auto-generated catch block<o:p>
e1.printStackTrace();<o:p>
}<o:p>
执行后的结果如下:(正确)<o:p>
properties in is : java.io.ByteArrayInputStream@257b34<o:p>
JAVA_HOME : -- c:jdk<o:p>
xml file url is : file:/D:/jakarta-tomcat-/webapps/StrutsDemo/WEB-INF/<o:p>
classes/config.xml<o:p>
inputStream of the xml file is : java.io.BufferedInputStream@ca5bff<o:p>
reader : org.dom4j.io.SAXReader@1cd3dd7<o:p>
document doc is : org.dom4j.tree.DefaultDocument@09 [Document: name null<o:p>
]<o:p>
action document is : org.dom4j.tree.DefaultDocument@09 [Document: name<o:p>
null]<o:p>
note List is : 1<o:p>
java home node is : org.dom4j.tree.DefaultElement@f [Element: <java att<o:p>
ributes: []/>]<o:p>
the value of the java node is : c:\jdk<o:p>
<o:p> </o:p>
两次的结果不同点的分析:
<o:p>
</o:p>
(主要看蓝色的代码部分,文件的存放位置的不同)
<o:p>
</o:p>
第一种方法,配置文件在
WEB-INF/classes/
com/yourcompany/struts/config.properties
目录下放着。也就是在包目录下。
<o:p>
</o:p>
第二种方法,配置文件在
WEB-INF/classes/
目录下存放。也就是根目录下。
<o:p>
</o:p>
所以如果用第二种方法来读第一种配置文件,就会出错。
<o:p>
</o:p>
<o:p>
--------------------------------------------------------------------------------------------------------------
以上是我的个人见解,欢迎批评指正.zhyiwww@163.com</o:p>
分享到:
相关推荐
本篇文章将详细探讨如何通过Python来读取并解析`.properties`配置文件。 首先,了解`.properties`文件的格式。这种文件通常用于存储配置信息,其中键值对以等号`=`分隔,每一行代表一个键值对,注释以`#`或`!`开始...
js读取properties文件,很好用的。js读取properties文件,很好用的。js读取properties文件,很好用的。js读取properties文件,很好用的。
读取properties文件返回map
properties文件读写操作
c#操作properties,读写配置文件,非常方便,几行代码就搞定
java 读取properties文件代码
ConfigFile configfile = ConfigFile.getInstance("ipConfig123.properties"); String ip = configfile.getkeyvalue("ip"); 可以取出ipConfig123.properties 文件中IP的内容
java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题
java读写properties配置文件
java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题
读取properties文件工具类。使用时直接将工具类放到Java项目中,调用读取properties文件的方法即可。
java中properties文件读取demo
读取properties返回map并写入文件
Java读取Properties文件的六种方法
怎样读取properties文件内容,用java中最基本的方式去读取properties文件中的内容
读取Properties文件的六种方法 java properties 文件
在实际SSM项目中添加方法设计,读取properties文件代码。
利用Java的Properties 类读取配置文件信息! 读取Properties文件的例子
JAVA读取properties的值,JAVA读取properties文件,JAVA读取properties的内容
java完美读取properties文件