从ICEfaces中的build.properties获取值时出现问题

时间:2012-07-04 11:09:45

标签: java jsp nullpointerexception icefaces filenotfoundexception

我想获取我从build.properties

添加的属性的值
dergilik.host=http://172.171.1.155/

使用以下代码

private final static String PROPERTIES_FILE = "build.properties";
private final static String HOST = "dergilik.host";
private final Properties props = new Properties();

private String getHost() {
    try {
        InputStream inp = new FileInputStream(PROPERTIES_FILE);
        props.load(inp);
        return props.getProperty(HOST);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        System.out.println(e.getMessage());
        e.printStackTrace();
        return null;
    }        
}

但是应用程序在props.load(inp);时抛出FileNotFoundException。我也尝试使用ClassLoader类并发生NullPointerException。此外,我将PROPERTIES_FILE更改为“/ProjectName/build.properties”,但它不起作用。

那么如何让程序正确找到build.properties文件?

由于

1 个答案:

答案 0 :(得分:1)

如果您想在网络应用程序中访问

  • 并且资源位于网络应用程序内,并且您可以访问ServletContext,您应该使用ServletContext.getResourceAsStream()
  • 并且资源位于Web应用程序之外,使用web.xml中的context-param配置路径并尝试使用ServletContext.getInitParameter()进行访问

如果不是Web应用程序并且存在于类路径使用中,

  • Thread.currentThread().getContextClassloader().getResourceAsStream()