Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java getResourceAsStream返回null,带有标记支持_Java_Jsp_Tags - Fatal编程技术网

Java getResourceAsStream返回null,带有标记支持

Java getResourceAsStream返回null,带有标记支持,java,jsp,tags,Java,Jsp,Tags,我有一个扩展TagSupport的类文件,这里我想读取一个属性文件,但它不起作用。我认为getResourceAsStream正在返回null 我在bith系统上使用爆炸战争文件 代码: 公共类MyTag扩展了标记支持{ private int getUsers() { ServletContext servletContext = pageContext.getServletContext(); InputStream in = pageContext.getServletCo

我有一个扩展TagSupport的类文件,这里我想读取一个属性文件,但它不起作用。我认为getResourceAsStream正在返回null

我在bith系统上使用爆炸战争文件

代码:

公共类MyTag扩展了标记支持{

  private int getUsers() {

  ServletContext servletContext = pageContext.getServletContext();

  InputStream in = pageContext.getServletContext().getResourceAsStream("/WEB-INF/app.properties");

  Properties properties = new Properties();
  properties.load(in);
  int users= Integer.parseInt(properties.getProperty("users"));

  return users;    }
}

这段代码在我的电脑上运行,但在测试系统上不起作用。我得到以下例外情况:

位于的java.lang.NullPointerException错误[STDERR] java.util.Properties$LineReader.readLine(Properties.java:418)错误 [STDERR]位于java.util.Properties.load0(Properties.java:337) java.util.Properties.load(Properties.java:325)处出现错误[STDERR]


为什么您的
应用程序属性
位于
/WEB-INF
中?如果是
/WEB-INF/classes
,您只需调用
getResourceAsStream(“/app.properties”)
。这是因为to的参数是相对于类路径解析的。

我认为这是另一回事。但为什么它在开发系统上工作而不是在测试中工作呢?很难说不知道任何一个系统(操作系统、JDK版本、应用服务器等等)。但一般来说,属性文件和其他资源放在
/WEB-INF/classes
中。谢谢。那么我的代码有什么问题吗。使用getServletContext,它允许您加载相对于上下文根的资源。