2017-01-17 10 views
-1

Я загружаю ресурс: src/com/company/my.properties, но его нельзя найти на пути к классам.Файл свойств Camel не найден в пути к классу

Ошибка

Не удалось создать маршрут ROUTE1: Route (ROUTE1) [[Из [свойства: {{fromroute}}]] -> [Выбор [[Когда [... из-за не удалось решить конечную точку: свойства: //% 7B% 7Bfromroute% 7D% 7D из-за: свойства файла COM/компании/my.properties не найден в пути к классам

  • верблюд ядро: 2.18
  • свойства верблюд чтения см: Doc

Файл my.properties содержит ключ 'fromroute'.

fromroute=file:/a/b

Следующий фрагмент кода показывает, как я пытаюсь загрузить файл.

PropertiesComponent pc = new PropertiesComponent(); 
pc.setLocation("classpath:com/company/my.properties"); 
context.addComponent("properties", pc); 

.... 
    from("properties:{{fromroute}}") 
....  
+1

Для загрузчиком классов, чтобы найти свои свойства файла, он должен быть расположен где-то в SRC/основные/ресурсов. Или в вашем случае src/main/resources/com/company. –

+0

@ luc14n0 Спасибо за ваш ответ, я переместил файл свойств в папку класса – user881703

ответ

0

my.properties файл должен быть перемещены, чтобы SRC/основные/ресурсов нет (ЦСИ/ком/компания /) и обновления пути setLocation

pc.setLocation("my.properties"); 
+0

, на ваш вопрос ответили? –

+0

да спасибо за помощь – user881703

0

Для Загрузчик классов, чтобы найти ресурс , его необходимо найти в src/main/resources/, например в вашем случае: src/main/resources/com/company/my.properties, иначе ресурс не окажется в JAR-файле и не будет доступен во время выполнения.

В зависимости от типа ClassLoader, который вы используете для загрузки ресурса, вам необходимо включить или исключить имя пакета.

Например:

getClass().getClassLoader().getResourceAsStream("my.properties"); 

Thread.currentThread().getContextClassLoader().getResourceAsStream("/com/company/my.properties");