getResource в веб-проекте Java

структура моего проекта содержит 3 основные папки (как 3 проекта входят в 1) Например..

Main/java/..
Main1/java/..
Main2/java/..

в этих 3 модулях исходная папка - java, моя проблема заключается в том, как использовать метод getResource из Main1, чтобы получить URL-адрес файла из Main2. Использование MyClass.getResource(/xxx/xxx/xxx) указывает на корневой каталог Main1.

Заранее спасибо.


person Brake    schedule 16.05.2011    source источник


Ответы (1)


Как javadoc для getResource говорит

сначала будет искать ресурс в загрузчике родительского класса; если родитель имеет значение null, ищется путь к загрузчику классов, встроенному в виртуальную машину. В противном случае этот метод вызовет findResource(String) для поиска ресурса.

Итак, у вас должен быть класс из Main2 в вашем пути к классам. Альтернативой является реализация собственного ClassLoader и реализация метода findResource для загрузки классов. Наличие класса в вашем пути к классам кажется более разумным/простым подходом (я лично считаю, что возиться с CLassLoaders, как правило, не очень хорошая идея, если вы действительно не знаете, что делаете).

person MarcoS    schedule 16.05.2011
comment
Спасибо за ответ, что я сделал, так это добавил Main2/src/main/webapp к пути к классу, а затем я указываю только /web.xml как путь от Main1, но он все равно выдает null.. - person Brake; 16.05.2011
comment
@Brake: вы пытаетесь загрузить класс или файл (например, web.xml)? В любом случае web.xml находится в WEB-INF, поэтому вам следует загрузить WEB-INF/web.xml - person MarcoS; 16.05.2011