2013-11-12 2 views
3

В моем приложении я хочу, чтобы заполнить конечную точку URL с someData из моих application.properties и заполнить header.name и header.myId тщательно перед использованием myEndpoint.Spring CamelContext не удался разрешить заполнитель

my_bean.xml:

<camel:camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" > 
     <propertyPlaceholder id="properties" location="ref:myProps"/> 

     <endpoint id="myEndpoint" uri="...myUrl.../${header.name}/{{someData}}/${header.myId}"/> 

     <route id="myRoute" trace="true"> 
      ... 
     </route> 

</camel:camelContext> 

Он работал очень хорошо, я создал тесты и все было замечательно, я добавил блок my_bean.xml в web.xml для того, чтобы использовать класс, где я использую эту конечную точку в другую класс. После добавления его в web.xml я получил ошибку:

INFO: Initializing Spring root WebApplicationContext lis 07, 2013 3:57:44 PM org.apache.catalina.core.StandardContext listenerStart SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'myEndpoint' defined in null: Could not resolve placeholder 'header.name' in string value: "http4:...myUrl.../${header.name}/{{someData}}/${header.myId}"

Мое временное решение: Я добавил header.name и header.myId в application.properties (где someData есть), и он снова работает но я знаю, что этого не должно быть. Любая идея, как я могу исправить это, не записывая эти значения в свойства?

ответ

0

Это ограничение в Spring Framework. Мы здесь часто задаваемые вопросы на веб-сайте Apache Camel, который объясняет это и что вы можете сделать: http://camel.apache.org/how-do-i-use-spring-property-placeholder-with-camel-xml.html

+0

Я сделал все, что говорится на веб-сайте, который вы отправили, но он все еще не работает. Я все еще не могу заставить его не запрашивать '$ {header.name}' – alicjab

+0

Вы не можете использовать простой язык в конечных точках http4. Если вам нужны динамические URI, см. Этот FAQ: http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html –

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