在哪里放apache常用配置文件

时间:2010-11-09 08:21:58

标签: java apache-commons

我使用apache通用配置库在我的网站启动时提取配置列表。

但它总是抛出错误找不到配置源。

我应该把配置文件放在哪里?

这是web.xml:

<servlet>
    <servlet-name>Quartz</servlet-name>
    <servlet-class>me.myclass.Init</servlet-class>
    <load-on-startup>1</load-on-startup>        
</servlet>

并在我的代码中:

public void init()
{
    XMLConfiguration xmlConfig;
    try {
        xmlConfig = new XMLConfiguration("/WEB-INF/scheduler.xml");
        System.out.println(xmlConfig.getString("master"));
    } catch (org.apache.commons.configuration.ConfigurationException ex) {
        System.out.println(ex);
    } 
}

2 个答案:

答案 0 :(得分:2)

由于您在servlet中,我建议使用servlet上下文。只要您的文件位于WEB-INF中,就应该使用以下代码找到它:

  ServletContext context = getServletContext();
  File schedulerFile = new File(context.getResource("/WEB-INF/scheduler.xml").getPath());
  xmlConfig = new XMLConfiguration(schedulerFile);

来自JavaDocs: getResource:返回映射到指定路径的资源的URL。路径必须以“/”开头,并被解释为相对于当前上下文根。

答案 1 :(得分:1)

从您的代码中,文件scheduler.xml应位于您的网络应用程序的文件夹WEB-INF中。如果你把它放在那里,并且无法读取,请检查它的权限。

编辑:可能存在类路径问题。对于初学者,尝试将scheduler.xml放在一个众所周知的地方,这是一个像c:\Test\scheduler.xml这样的绝对目录,然后使用

xmlConfig = new XMLConfiguration("c:/Test/scheduler.xml");

只是为了检查这种方式是否有效。