У меня есть 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/
Как насчет того, чтобы положить его в корневой контекст войны, содержащейся в ухе? – BigMike
Я отредактировал свой вопрос. Мне не нужно обращаться к папке из Интернета, но из EJB. – xarx