我开发了一个在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部署为战争。
针对此问题的任何解决方案?
谢谢, 亚历山大
答案 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应用程序都是可见的,但没有其他人。