【问题标题】:file path in WebApplication using GlassFish使用 GlassFish 在 WebApplication 中的文件路径
【发布时间】:2013-07-26 03:01:00
【问题描述】:

我正在使用一个类来获取源文件夹下的属性文件。但它不起作用!检查后发现默认路径是使用

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

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

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

更新:使用

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

而不是

ClassLoader.getSystemResource("sectionMapping.properties")

成功了!我想知道为什么?

【问题讨论】:

    标签: java glassfish


    【解决方案1】:

    您应该使用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() 并发布应引发的异常的详细信息。

    【讨论】:

      猜你喜欢
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 2020-12-15
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多