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
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中排除。