Как правильно получить URL-адрес ресурса в пути к классам в WebSphere 6.1? - PullRequest
4 голосов
/ 01 марта 2012

Приведенный ниже код прекрасно работает в Tomcat, но вызов getResource (...) возвращает ноль в WebSphere 6.1.Я пытался использовать оба Thread.currentThread (). GetClassLoader () и MyClass.class.getClassLoader () - оба возвращают ноль.

    URL url = null;
    ClassLoader cl = MyClass.class.getClassLoader();
    LOG.info("Using class's classloader.");

    url = cl.getResource("resources/AConfigFile.xml");

    if(url == null) {
        throw new RuntimeException("The ClassLoader returned null for the URL of the " +
                "the XML Document.  This is definitely not right.");
    }

... и я тоже пробовал это, без удачи...

   URL url = null;

    url = MyClass.class.getResource("resources/AConfigFile.xml");

    if(url == null) {
        throw new RuntimeException("The ClassLoader returned null for the URL of the " +
                "the XML Document.  This is definitely not right.");
    }

Что с этим?Как правильно получить URL для ресурса на пути к классам?

Ответы [ 2 ]

4 голосов
/ 01 марта 2012

Я думаю, разница в том, как ведут себя ClassLoader. Можете ли вы вместо этого использовать вариант Class? MyClass. class.getResource () ? Мы постоянно используем Class.getResourceAsStream() в WebSphere 6.1.

Или, возможно, попробуйте предварительно предвосхитить путь к ресурсу с помощью косой черты.

Используя вариант Class, ваш относительный путь будет выглядеть в подкаталоге resources в пакете MyClass. Но вариант ClassLoader может и не быть.

1 голос
/ 01 марта 2012

В контейнере сервлета вы должны использовать ServletContext.getResource() и ServletContext.getResourceAsStream() вместо Class.getResource() и Class.getResourceAsStream() соответственно. Скорее всего, он будет работать одинаково в разных контейнерах сервлетов.

Кроме того, дважды проверьте правильность вашего относительного пути в контексте, в котором вы его используете. Попробуйте абсолютный путь и посмотрите, работает ли он лучше.

...