开发者

"Cannot locate configuration source" when using commons-configuration XMLConfiguration with Tomcat

I'm building two apps that uses commons-configuration XMLConfiguration. Since the apps are related, I've build another project, called commons, that has a custom configuration manager that initializes the XMLConfiguration like so:

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

What happens is that the "command-line" app works fine, loading the configuration file. But when I try to use my custom configuration manager on a webapp (using Tomcat) I get a

org.apache.commons.configuration.ConfigurationException: Cannot locate configuration source

I've placed the conf directory on the WEB-INF folder, the root folder and the META-INF folder. I've also tried with "/conf/config.xml", "./conf/config.xml" and开发者_如何学编程 "../conf/config.xml".

The only time I got this to work - on the web app - was using an absolute path.

What am I missing?

Thanks, Bruno


Use ServletContext.getResourceAsStream(..), and pass the stream. Or if the file is on the classpath, you can use getClass().getResourceAsStream(..)


Actually, org.apache.commons.configuration.XMLConfiguration does not have a constructor which accepts an InputStream, so getClass().getResourceAsStream() will not work. There is an XMLConfiguration constructor which takes a URL, however, so use getClass().getResource() instead.

See http://commons.apache.org/configuration/apidocs/org/apache/commons/configuration/XMLConfiguration.html

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜