2012-03-30 2 views
0

У меня есть EJB, который использует дополнительные файлы ресурсов (текстовые файлы шаблонов, размещенные в каталоге под названием «шаблоны»). Я не знаю, как получить доступ к содержимому каталога шаблонов из приложения Java EE.Как получить доступ к дополнительным файлам, развернутым в weblogic

Я попытался разместить каталог как папку «EarContent/templates» или «EarContent/APP-INF/lib/templates» в проекте EAR. Каталог будет развернут в домене weblogic, как и ожидалось. (Я искал его в файловой структуре домена weblogic.) Но когда я хочу получить доступ к файлам, все пути к ресурсам, по-видимому, относятся к корневому каталогу домена weblogic, а не к развертываемому приложению. Таким образом

URL dirURL = this.getClass().getClassLoader().getResource("templates"); 

возвращает "Файл:/< доменный_корень >/шаблоны",

File file = new File("templates"); 

открывает файл в "< доменный_корень >/шаблоны" (если есть).

Как правильно получить доступ к дополнительным файлам ресурсов?

Edit: Я обнаружил, что, когда я помещаю «шаблоны» каталог в EAR проекта как «EarContent/APP-INF/классов/шаблонов», как куски кода, упомянутые выше, найти его. Но каталог «classes» не подходит для размещения каталога «шаблонов» в ... (по крайней мере, потому что среда IDE фильтрует файлы не .class в этом каталоге и не отображает его.)

Редактировать: Я немного играл с ним. Используя FileMon, я вижу, что weblogic полностью игнорирует каталоги, указанные в пути класса MANIFEST.MF. Я пробовал как манифеста EJB, так и EAR, и weblogic даже не пытается заглянуть в путь, указанный в манифесте.

Manifest-Version: 1.0 
Class-Path: APP-INF/ 
+0

Как насчет того, чтобы положить его в корневой контекст войны, содержащейся в ухе? – BigMike

+0

Я отредактировал свой вопрос. Мне не нужно обращаться к папке из Интернета, но из EJB. – xarx

ответ

0

Я потратил много времени, прибегая к помощи и экспериментировать, но я не нашел другого выхода, кроме как поместить каталог в <EarProject>/EarContent/APP-INF/классы/папки. Другие решения, даже если (неопределенно), предложенные в документации по weblogic, такие как установка класса Class в файле MANIFEST.MF, не работали.

Я также проверил возможность размещения каталога шаблонов в отдельный проект утилиты. Каталог шаблонов должен быть помещен в проект утилиты < >/src /. Однако в среде разработки каталог шаблонов развертывается как обычный каталог, а при экспорте в EAR каталог шаблонов упаковывается в проект утилиты .jar. При развертывании на сервере Weblogic этот .jar не распаковывается, поэтому вы не можете использовать файлы шаблонов в качестве обычных файлов, в частности вы не можете их перечислить.

+0

P.S. Каталог шаблонов, помещенный в /EarContent/APP-INF/classes /, отображается в среде IDE. Вы просто не можете перетащить его в WLW IDE из другого места. Вам нужно переместить его в файловый менеджер. – xarx

Смежные вопросы