У меня есть верблюда маршрут, похожий на:не в состоянии поразить внешнюю службу HTTP с помощью Apache Camel
<camel:routeContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="restlet:/v1/authentication/initiate?restletMethod=post&restletBinding=#queryStringToHeadersRestletBinding"/>
<to uri="http://xx.xx.xx.xx:20015/login"></to>
</route>
Теперь, после получения запроса от Restlet, верблюд процессор вместо того, чтобы идти в http://xx.xx.xx.xx:20015/login
попыток ударить http://localhost/v1/authentication/initiate
, который не существует, и, таким образом, я получаю 404 HTTPOperation не удалось, как:
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
org.apache.camel.component.http.HttpOperationFailedException: HTTP operation failed invoking http://localhost/v1/authentication/initiate with statusCode: 404
at org.apache.camel.component.http.HttpProducer.populateHttpOperationFailedException(HttpProducer.java:228) ~[camel-http-2.12.4.jar:2.12.4]
at org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:156) ~[camel-http-2.12.4.jar:2.12.4]
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) ~[camel-core-2.12.4.jar:2.12.4]
Я могу использовать маршруты в других местах Succ essfully. Но не знаю, почему в этом определении маршрута он не попадает в предназначенный URL-адрес назначения. Пожалуйста, помогите.
установили вы в 'заголовок Exchange.HTTP_URI' ранее в маршруте? Или, возможно, это то, что делает Restlet? Это приведет к переопределению значения uri, заданного в маршруте –
Извлеките заголовки CamelHTTP, которые могут вызвать шум при вызове конечной точки HTTP. См. Этот FAQ: http://camel.apache.org/how-to-remove-the-http-protocol-headers-in-the-camel-message.html –
Да, CamelHTTPHeader вызывал проблему, которая указывала на рестальтирующий URL. Удаление обработчиков: ' ' Спасибо всем! –