java读取properties配置文件问题

Vivian_2048 2014-08-30 04:56:35
配置文件路径:WEB-INF/config/commConfig.properties

java代码:
import java.util.Properties;
import java.io.InputStream;
import java.io.IOException;

public final class CommConfig {

public static void init() {
。。。。
commConfigFilePath = ServletActionContext.getServletContext().getRealPath("WEB-INF/config/commConfig.properties");
}

private static void readCommConfigFromFile(){
。。。。。。。。。。
Properties prop = new Properties();
System.out.println(commConfigFilePath);==》此处打印路径为:D:\......tmp1\wtpwebapps\mobile\WEB-INF\config\commConfig.properties
InputStream fis = CommConfig.class.getResourceAsStream(commConfigFilePath);
try {
prop.load(fis);
CommConfig.serverName = prop.getProperty("serverName");
CommConfig.ipAddr = prop.getProperty("ipAddr");
CommConfig.port = prop.getProperty("port");

} catch (IOException e) {
e.printStackTrace();
}

}
}

打印错误信息:
Exception occurred during processing request: null
java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at com.common.CommConfig.readCommConfigFromFile(CommConfig.java:219)

在网上搜了些材料都没有看出来是什么原因

...全文
3769 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaaoan 2016-11-07
  • 打赏
  • 举报
回复
java.lang.NullPointerException org.apache.jsp.MyJsp_jsp._jspService(MyJsp_jsp.java:78) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
Vivian_2048 2014-09-01
  • 打赏
  • 举报
回复
引用 7 楼 magi1201 的回复:
配置文件放在src下面,编译后到classpath下面

String classpath = Thread.currentThread().getContextClassLoader().getResource("/").getPath();  
String fileName = classpath + "config.properties";
Properties p = new Properties();
FileInputStream fis = new FileInputStream(fileName);
p.load(fis);
这样不会涉及太过目录问题,直接在classpath下面就能取到配置文件,方便读写 这种方式在tomcat和weblogic下均可使用
换目录的没有试过,但看网上好多人这么用,感谢
jiayou55 2014-08-30
  • 打赏
  • 举报
回复
遇到此问题,再次观看
姜小白- 2014-08-30
  • 打赏
  • 举报
回复
配置文件放在src下面,编译后到classpath下面

String classpath = Thread.currentThread().getContextClassLoader().getResource("/").getPath();  
String fileName = classpath + "config.properties";
Properties p = new Properties();
FileInputStream fis = new FileInputStream(fileName);
p.load(fis);
这样不会涉及太过目录问题,直接在classpath下面就能取到配置文件,方便读写 这种方式在tomcat和weblogic下均可使用
Vivian_2048 2014-08-30
  • 打赏
  • 举报
回复
引用 5 楼 net_lover 的回复:
最可能的原因是 fis 为null了,你换种方法试试 InputStream in = lnew BufferedInputStream(new FileInputStream(commConfigFilePath)); prop.load(in);
不知道什么原因,但这个方法确实有效
孟子E章 2014-08-30
  • 打赏
  • 举报
回复
最可能的原因是 fis 为null了,你换种方法试试 InputStream in = lnew BufferedInputStream(new FileInputStream(commConfigFilePath)); prop.load(in);
Vivian_2048 2014-08-30
  • 打赏
  • 举报
回复
引用 3 楼 net_lover 的回复:
CommConfig.java:219行数哪一行?
忘了贴了: prop.load(fis);
孟子E章 2014-08-30
  • 打赏
  • 举报
回复
CommConfig.java:219行数哪一行?
Vivian_2048 2014-08-30
  • 打赏
  • 举报
回复
引用 1 楼 net_lover 的回复:
这个路径是tomcat发布的路径,请打开 D:\......tmp1\wtpwebapps\mobile\WEB-INF\config\ 文件夹下查看是否有commConfig.properties文件。并且内容存在
查看过,在这个目录下文件存在的,内容也是对的
孟子E章 2014-08-30
  • 打赏
  • 举报
回复
这个路径是tomcat发布的路径,请打开 D:\......tmp1\wtpwebapps\mobile\WEB-INF\config\ 文件夹下查看是否有commConfig.properties文件。并且内容存在

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧