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

时间:2009-07-01 11:22:17

标签: java tomcat

我开发了一个在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部署为战争。

针对此问题的任何解决方案?

谢谢, 亚历山大

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

我认为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应用程序都是可见的,但没有其他人。