读取位于资源的GlassFish的Java

问题描述:

我有一个Maven的Java EE应用程序读取位于资源的GlassFish的Java

enter image description here

的路径文件是

~/Work/appname/WebContent/resources/json/menu.json 

在位于这里的GlassFish文件部署后:

~/Tools/glassfish4/glassfish/domains/domain1/applications/appname/resources/json/menu.json 

enter image description here 在此文件中以json格式存储菜单。 我需要对这个文件进行基本的crud(创建,读取,更新,删除)操作。

我试图获取文件是这样的:

InputStream inputStream = ModulMenuUtil.class.getClassLoader().getResourceAsStream("/menu.json"); 

我得到一个NullPointerException。我不知道如何获得这个文件的路径。请帮帮我。

+0

我还牛逼ry InputStream inputStream = ModulMenuUtil.class.getClassLoader()。getResourceAsStream(“json/menu.json”);不要工作。 –

确保您的json文件夹和文件放置在src/main/resources之下。

尝试以下操作:

this.getClass().getClassLoader().getResourceAsStream("json/menu.json"); 

或(不推荐)

Thread.currentThread().getContextClassLoader().getResourceAsStream("json/menu.json"); 

如果这两个方法都不奏效,你也可以尝试将文件放在你的src文件夹的根。

参见:

+0

我用静态方法创建了一个Util类。此解决方案不适用于静态方法。你能用静态方法做什么? –

+0

第二种方法也适用于静态环境... – unwichtich