Приложение Spring-Boot не соблюдает -Dloader.path

Мое загрузочное приложение Spring (v2.1.1.RELEASE) упаковано с использованием следующего плагина и макета:

         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <finalName>my-service-${project.version}</finalName>
                        <mainClass>com.my.app.MainClass</mainClass>
                        <layout>ZIP</layout>
                    </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Я использую ниже сценарий запуска:

java -Dloader.path=/path/to/config/dir/ -jar my-service-1.0.jar

В одной из зависимостей моего приложения приведенный ниже код используется для чтения внешних файлов конфигурации xml (например, hbase-site.xml):

URL url = ClassLoader.getSystemResource(filename);

вот почему я пытаюсь сделать эти файлы доступными с помощью loader.path, но приложение по-прежнему не читает файлы, присутствующие в предоставленном каталоге. Я пропустил что-нибудь еще?

Уже упомянуто: Spring Boot: можно ли использовать внешние файлы application.properties в произвольных каталогах с толстой банкой?

Исполняемый файл JAR Spring Boot с путем к классам

Вы проверили правильность структуры каталогов на основе этих документов, docs.spring.io/spring-boot/docs/current/reference/html/…

Anil 26.02.2019 05:05

Также попробуйте использовать @PropertySource("file:config.properties")

Anil 26.02.2019 05:07

@Anil эти файлы являются файлами конфигурации xml, необходимыми для зависимостей. Мне нужно передать это извне, чтобы его можно было сделать доступным во время выполнения весенней загрузки. Я также обновил вопрос. Таким образом, в этом случае «PropertySource» не будет работать, поскольку он ожидает файл .properties или что-то подобное, которое имеет пару ключ-значение в ожидаемом формате.

tom 26.02.2019 06:09
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
2 525
1

Ответы 1

Я думаю, что это должна быть проблема getSystemResource, попробуйте использовать getClassLoader().getResourceAsStream(path)

Другие вопросы по теме