2015-11-06 2 views
1

Я настроил файл config.xml, выбрав соответствующий файл свойств в зависимости от среды. Я запускаю это как приложение Spring Boot с Apache Camel.Не удалось разрешить placeholder в строковом значении с внешними файлами

Конфигурация выглядит следующим образом.

<bean id="properties" 
    class="org.apache.camel.component.properties.PropertiesComponent"> 
    <property name="locations" ref="locations" /> 
</bean> 

<bean id="bridgePropertyPlaceholder" 
    class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"> 
    <property name="locations" ref="locations" /> 
    <property name="ignoreUnresolvablePlaceholders" value="true" /> 
</bean> 

<beans profile="dev"> 
<util:list id="locations"> 
    <value>classpath:config/users.properties</value> 
    <value>classpath:config/application.properties</value> 
    <value>classpath:config/application-dev.properties</value> 
</util:list> 

<beans profile="test"> 
<util:list id="locations"> 
    <value>file:${project.dir}/config/users.properties</value> 
    <value>file:${project.dir}/config/application.properties</value> 
</util:list> 

При использовании тестового профиля я хочу использовать внешние файлы, определенные в конфигурации (потому что я не хочу, чтобы совершить имя пользователя/пароль репо). Кажется, все работает нормально.

Однако мой файл users.properties содержит:

username=myusername 
password=mypassword 

и мой application.properties содержит:

loginParameters=username=${username}&password=${password} 

при запуске java -jar myjar.jar --spring.profiles.active=test я сталкиваюсь:

java.lang.IllegalArgumentException: Could not resolve placeholder 'username' in string value '${username}&password=${password}' 

Это явно загружает файлы свойств, поскольку он содержит:

Loading properties file from URL: file:...../users.properties 
Loading properties file from URL: file:...../application.properties 
Bridging Camel and Spring property placeholder configurer with id: bridgePropertyPlaceholder 
... 

И затем возникает исключение. Как я могу решить проблему, когда файл application.properties не распознает мои свойства, определенные в users.properties? Все работает нормально при запуске dev-профиля.

ответ

0

в свойствах вашего приложения, используйте $ simple {username} и $ simple {password}, ​​чтобы сообщить Camel о том, чтобы поставить значения там.

+0

должен быть комментарий –

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