我使用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);
}
}
答案 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");
只是为了检查这种方式是否有效。