Java 试图加载文件的NullPointerException

Java 试图加载文件的NullPointerException,java,json,weblogic,jdeveloper,Java,Json,Weblogic,Jdeveloper,情况如下: 用jdeveloper开发jsp应用程序 部署到Oracle Weblogic 所有文件都在同一个项目中 源文件位于src文件夹中的包中 在Resources文件夹中有两个文件:menu.json和TestWS.properties 因此,我创建了一个java类,它应该读取menu.json,并根据其结构返回一个菜单(html) 当我在课堂上这样做的时候 InputStream i = Thread.currentThread().getContextClassLoade

情况如下:

  • 用jdeveloper开发jsp应用程序
  • 部署到Oracle Weblogic
  • 所有文件都在同一个项目中
  • 源文件位于
    src
    文件夹中的包中
  • Resources
    文件夹中有两个文件:
    menu.json
    TestWS.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
扩展名添加到
编译器->将文件类型复制到输出目录
,重命名、删除、重新创建、更改json文件的扩展名,部署到WAR并将项目加载到另一台运行weblogic的计算机上,但无效

还有什么我遗漏的吗?

这在中有解释


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

您是否检查了json文件是否正确导出到war文件中(通过解压缩)?@dystroy实际上没有。我只是检查了,没有。我如何包括它?(我对这类东西非常陌生…)Thread.getContextClassLoader==null。。。请参阅@Luca如果是这种情况,它将不会加载TestWS.properties如果您使用JDeveloper构建WAR文件,那么一定有某种选项使它将.json文件从WAR中排除。