где разместить общий конфигурационный файл apache - PullRequest
1 голос
/ 09 ноября 2010

я использую общую библиотеку конфигурации 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 ]

2 голосов
/ 19 августа 2011

Поскольку вы находитесь в сервлете, я рекомендую использовать контекст сервлета.Пока ваш файл находится в WEB-INF, он должен находиться с этим кодом:

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

Из JavaDocs: getResource: возвращает URL-адрес ресурса, который сопоставлен с указанным путем.Путь должен начинаться с "/" и интерпретируется как относящийся к текущему корневому контексту.

1 голос
/ 09 ноября 2010

Из вашего кода файл scheduler.xml должен находиться в папке WEB-INF вашего веб-приложения.Если вы вставили его туда, и он не может быть прочитан, проверьте его разрешения.

Редактировать: возможно, существует проблема с classpath.Для начала попробуйте поместить scheduler.xml в какое-то известное место, которое является абсолютным каталогом, например c:\Test\scheduler.xml, а затем используйте

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

, чтобы проверить, работает ли этот способ.

...