Загрузка ресурса из банки в веб-приложении - PullRequest
0 голосов
/ 28 марта 2012

Я прочитал все вопросы с ответами, но все равно у меня это не работает.

В моем веб-приложении есть баночка с несколькими изображениями и xmls. Они требуются классами в самом банке. Поэтому я изменил необходимые строки, как показано ниже:

Я изменил классы внутри своего фляги, чтобы ссылаться на ресурсы (которые присутствуют внутри самого фляги), используя:

Thread.currentThread().getContextClassLoader().getResource(path) // returns null

Я тоже пробовал раньше:

MyClassName.class.getResource(path) // null again

Я много читал об этом и узнал, что более поздняя строка кода сможет подобрать ресурсы, но, к сожалению, ни одна из них не работает для меня ... я что-то упустил?

Примечание. Работая на Tomcat7, и поскольку я работаю в Vista, я получаю значение 'path' в виде '\ myFolder \ images \'

Спасибо

1 Ответ

2 голосов
/ 28 марта 2012

Есть несколько моментов, о которых нужно позаботиться при загрузке ресурсов из jar-файла, встроенного в веб-приложение

  1. Загрузка файла отличается от загрузки ресурса. Когда мы используем File.seperator, обычно это файлы w.r.t и абсолютные пути. Не рекомендуется для загрузки ресурсов.
  2. При загрузке ресурсов из фляги убедитесь, что вы не используете File.seperator и не используете обычный '/', поскольку это относительный путь w.r.t к фляге.
  3. Если вы читаете свойства из xml внутри jar ... и это свойство ссылается на другое место, убедитесь, что вы читаете его с косой чертой /. Опять же, File.seperator не будет работать для загрузки ресурсов, потому что он заменит '/' на '\' (система Windows)
  4. Наконец, при загрузке ресурсов в вашем jar-коде используйте следующие строки

    MyCurrentClass.class.getResource (путь)

Надеюсь, это поможет людям, имеющим дело с xmls внутри jar-файлов в веб-приложении

...