使用带有Tomcat的commons-configuration XMLConfiguration时“无法找到配置源”

时间:2010-12-23 15:47:55

标签: java tomcat apache-commons

我正在构建两个使用commons-configuration XMLConfiguration的应用程序。由于应用程序是相关的,我构建了另一个名为commons的项目,它有一个自定义配置管理器,可以像这样初始化XMLConfiguration:

config = new XMLConfiguration("conf/config.xml");

“命令行”应用程序运行正常,加载配置文件会发生什么。但是当我尝试在webapp上使用我的自定义配置管理器(使用Tomcat)时,我得到了一个

  

org.apache.commons.configuration.ConfigurationException:找不到配置源

我已将conf目录放在WEB-INF文件夹,根文件夹和META-INF文件夹中。我也尝试过"/conf/config.xml""./conf/config.xml""../conf/config.xml"

我唯一一次上网 - 在网络应用上 - 正在使用绝对路径。

我错过了什么?

谢谢, 布鲁诺

2 个答案:

答案 0 :(得分:2)

使用ServletContext.getResourceAsStream(..),然后传递信息流。或者,如果文件位于类路径中,则可以使用getClass().getResourceAsStream(..)

答案 1 :(得分:2)

实际上,org.apache.commons.configuration.XMLConfiguration没有接受InputStream的构造函数,因此getClass().getResourceAsStream()将无效。但是,有一个XMLConfiguration构造函数可以使用网址,因此请使用getClass().getResource()

请参阅http://commons.apache.org/configuration/apidocs/org/apache/commons/configuration/XMLConfiguration.html