В моем приложении я хочу, чтобы заполнить конечную точку 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 есть), и он снова работает но я знаю, что этого не должно быть. Любая идея, как я могу исправить это, не записывая эти значения в свойства?
Я сделал все, что говорится на веб-сайте, который вы отправили, но он все еще не работает. Я все еще не могу заставить его не запрашивать '$ {header.name}' – alicjab
Вы не можете использовать простой язык в конечных точках http4. Если вам нужны динамические URI, см. Этот FAQ: http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html –