尝试加载文件的NullPointerException

时间:2012-07-12 09:50:26

标签: java json weblogic jdeveloper

场景如下:

  • 使用jdeveloper开发jsp应用程序
  • 部署到Oracle Weblogic
  • 所有文件都在同一个项目中
  • 源文件位于src文件夹
  • 内的包内
  • Resources文件夹中有两个文件:menu.jsonTestWS.properties

所以,我创建了一个java类,它应该读取menu.json并根据其结构返回一个菜单(以html格式)。

在课堂上,当我这样做时

InputStream i =
    Thread.currentThread().getContextClassLoader().
        getResourceAsStream("Resources/menu.json");
BufferedReader r = new BufferedReader(new InputStreamReader(i));

我认为InputStreamReader构造函数会抛出NullPointerException,因为找不到该文件。

有趣的是,如果我尝试加载TestWS.properties,它会很好地加载它。

我尝试检查项目的属性,手动添加Project Source Path -> Resources下的两个文件,将.json扩展名添加到Compiler -> Copy file types to output directory,重命名,删除,重新创建,更改了json文件的扩展名,部署WAR并在另一台运行weblogic的机器上加载项目,但无济于事。

还有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

this article中解释了这一点。

简而言之,您必须更改编译器设置“将文件类型复制到输出目录”,以包含您希望在运行时可用的资源的扩展名。