使用GlassFish的Web应用程序中的文件路径

时间:2009-08-27 14:34:12

标签: java glassfish

我正在使用类来获取源文件夹下的属性文件。但它不起作用!检查后,我通过

找到了默认路径
File f = new File("/src/ss.properties");

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

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

更新:使用

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

而不是

ClassLoader.getSystemResource("sectionMapping.properties")

做了伎俩!我想知道为什么?

1 个答案:

答案 0 :(得分:5)

您应该使用getResourceAsStream或类似内容。有关如何访问资源的信息,请参阅this post。 (这与Glassfish无关 - 它适用于所有Java EE应用服务器。)

另见this JavaWorld article

更新:如果您的文件位于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(),并发布应抛出的异常的详细信息。