小编典典

使用GlassFish的WebApplication中的文件路径

java

我正在使用一个类来在源文件夹下获取属性文件。但这不起作用!经过检查,我发现通过使用默认路径

File f = new File("/src/ss.properties");

不是Web应用程序路径,而是glassfish配置路径!如果要获取存储在“类”路径中的属性文件,该怎么办?您知道,通常默认路径是项目路径。

我用过ClassLoader.getResourceAsStream("sss")。但是它返回null!我确定文件名正确,因为我已经在另一个简单的Java应用程序中尝试过了。

更新 :使用

this.getClass().getClassLoader().getResourceAsStream("sectionMapping.properties");

代替

ClassLoader.getSystemResource("sectionMapping.properties")

做到了!我想知道为什么?


阅读 237

收藏
2020-11-26

共1个答案

小编典典

您应该使用getResourceAsStream或类似的名称。有关如何访问资源的信息,请参见这篇文章。(这独立于Glassfish-
适用于所有Java EE应用服务器。)

另请参阅此JavaWorld文章

更新: 如果文件位于该位置src/ss.properties,请检查文件是否已复制到WEB- INF/classes。然后,您应该可以使用以下代码访问它:

InputStream propStream = ClassLoader.getResourceAsStream("ss.properties");

或(如果使用中的方法,请注意斜杠java.lang.Class

InputStream propStream = Class.getResourceAsStream("/ss.properties");

请注意,需要使用完整的文件名(包括.properties扩展名)。

如果以上两种方法均无效,请用替换getResourceAsStream呼叫,getResource(...).openStream()并张贴应引发的异常的详细信息。

2020-11-26