Я ищу способ «наилучшей практики» для доступа к файлам ресурсов (например, пакет .xml-файлов), а также структуру папок, в которой они находятся, независимо от того, используемого сервера приложений.Java: универсальный доступ к файлам ресурсов независимо от сервера приложений
Прямо сейчас я использую Wildfly 8 сервер и получить доступ ко всем src/main/resources/xxxx
, получая приложения реальный путь затем с помощью Paths.get(resourcePath)
, а также Files.walk(Paths.get(folderPath))
, если я хочу, чтобы получить доступ к файлам в папку в.
Однако, я столкнулся с проблемой, когда я попытался развернуть в Weblogic 12с, потому что это сервер приложений фактически берет все под WEB-INF/classes
и создает .jar
файл и добавляет его в WEB-INF/lib
. Я все еще могу получить доступ к уникальным ресурсам, используя classLoader.getResource(resourcePath)
, но по какой-то причине, когда я пытаюсь создать new File(Paths.get(resourcePath)
или использовать Files.walk(Paths.get(folderPath))
, он, похоже, не работает. Он выдает исключение, говорящее, что файл не существует, что я предполагаю, потому что он недоступен, поскольку он упакован внутри файла jar.
Я мог бы использовать classLoader.getResource(resourcePath)
для доступа ко всем моим ресурсам, но, к сожалению, в моем случае я не могу знать, какие ресурсы будут доступны во время компиляции. Мне особенно нужно иметь доступ к файлам и подпапкам выбранной папки, но я не нашел общий способ сделать это на обоих серверах приложений или на всех серверах приложений.
Бонусные баллы, если решение использует новый файл api вместо создания группы FileReaders, но я тоже в порядке.
Это было бы решением да, но я неохотно согласен с тем, что нет способа получить доступ к дереву папок ресурсов из папки ресурсов, где они на самом деле должны быть. – Konstantine