【问题标题】:Problem retrieving properties file from webapp in tomcat从tomcat中的webapp检索属性文件时出现问题
【发布时间】:2009-07-01 11:22:16
【问题描述】:

我开发了一个在 JBoss 4 中运行良好的 Web 应用程序。现在,我需要让它在 Tomcat 6 中运行,但是我无法访问某些属性文件。我使用以下代码读取这些文件:

InputStream is = Thread.currentThread().getContextClassLoader()
                .getResourceAsStream(fileName);
if (is == null) {
    throw new StartupError("Error loading " + fileName);
}

properties.load(is);

正如我之前所说,它在 JBoss 4 中运行良好。但是当我在 tomcat 中部署我的应用程序时,它找不到文件,将 null 分配给 'is' 变量,导致引发 StartupError。该文件位于WEB-INF/config目录下,webapp部署为war。

这个问题有什么解决办法吗?

谢谢, 亚历山大

【问题讨论】:

    标签: java tomcat


    【解决方案1】:

    将属性文件放在 WEB-INF/classes 中。

    或者将它们包含在您的一个 webapp Jar 文件的根目录中,尽管这会使编辑它们变得更加困难。如果您在构建脚本中选择属性并且不想在部署后对其进行编辑,这将非常有用。

    【讨论】:

    • 您好 JeeBee,您的解决方案确实有效。但是你知道为什么我在 JBoss 中可以访问 WEB-INF/config 下的文件,而在 Tomcat 中无法访问吗?
    • 我认为 config 文件夹是 JBoss 的想法,虽然我希望 Tomcat 也支持它。
    【解决方案2】:

    我假设 Tomcat 不会将 WEB-INF/config 添加到您的 webapp 类路径中。

    来自http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html

    WebappX - 为部署在单个 Tomcat 6 实例中的每个 Web 应用程序创建一个类加载器。您的 Web 应用程序存档的 /WEB-INF/classes 目录中的所有未打包的类和资源,以及您的 Web 应用程序存档的 /WEB-INF/lib 目录下的 JAR 文件中的类和资源,对包含的 Web 应用程序都是可见的,但没有其他人。

    【讨论】:

      猜你喜欢
      • 2020-08-25
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      相关资源
      最近更新 更多