代码之家  ›  专栏  ›  技术社区  ›  Alexandre

从Tomcat中的webapp检索属性文件时出现问题

  •  4
  • Alexandre  · 技术社区  · 15 年前

    我开发了一个在JBoss4中运行良好的Web应用程序。现在,我需要让它在Tomcat6中工作,但是我在访问一些属性文件时遇到了问题。我使用以下代码读取这些文件:

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

    正如我之前所说,它在JBoss4中工作得很好。但是当我在Tomcat中部署我的应用程序时,它找不到文件,将空值赋给“is”变量,导致抛出StartupError。该文件位于WEB-INF/config目录下,webapp作为战争部署。

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

    谢谢, 亚历山大

    2 回复  |  直到 15 年前
        1
  •  3
  •   JeeBee    15 年前

    将属性文件放入WEB-INF/类中。

    或者将它们包含在一个webapp jar文件的根目录中,尽管这使得编辑它们变得更加困难。如果您在构建脚本中选择了属性,并且不希望在部署后对其进行编辑,那么这很好。

        2
  •  0
  •   ipingu    15 年前

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

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

    webappx-为部署在单个Tomcat6实例中的每个Web应用程序创建一个类加载器。Web应用程序存档的/WEB-INF/classes目录中的所有解包类和资源,以及Web应用程序存档的/WEB-INF/lib目录下JAR文件中的类和资源,对包含这些类和资源的Web应用程序都可见,但对其他应用程序则不可见。