Получение org.apache.camel.component.http.HttpOperationFailedException с кодом состояния 405 - PullRequest
3 голосов
/ 18 марта 2012

Я использую servicemix 4.4.1.Я пытаюсь сделать http-вызов на веб-сайт, используя camel-http4.Независимо от того, какой веб-сайт я пытаюсь вызвать, я получаю эту ошибку: org.apache.camel.RuntimeCamelException: org.apache.camel.component.http.HttpOperationFailedException: операция HTTP не удалась, вызывая http://servicemix.apache.org/downloads/servicemix-4.4.0.html с statusCode: 405

Вот мой фрагмент кода:

 <camelContext xmlns="http://camel.apache.org/schema/spring">
  <route>
    <from uri="activemq://events1"/>
<setHeader headerName="CamelHttpMethod">
    <constant>POST</constant>
</setHeader>
    <to uri="http://servicemix.apache.org/downloads/servicemix-4.4.0.html"/>
    <to uri="log:events"/>
  </route>
</camelContext>

Я пробовал несколько сайтов и пробовал использовать разные методы http (post vs get), и я продолжаю получать ту же ошибку.Любая идея?Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Указанный вами веб-сайт не является целью формы.Так что, скорее всего, он будет разрешать только запросы GET, а не POST.Поэтому попробуйте установить для CamelHttpMethod значение GET.

Кстати.что вы хотите достичь с вашим маршрутом?Если вы хотите отправить сообщение activeMQ на веб-сайт, то с POST все в порядке, но вы должны использовать веб-сайт, который принимает POST.

Этого можно добиться, определив собственный маршрут для получения запроса.1006 *

Затем вы можете отправить на этот URL в первом маршруте.

1 голос
/ 30 июня 2012

Я проверил это; проблема решена путем установки опции 'bridgeEndpoint'; Вы устанавливаете конечной точкой http значение bridgeEndpoint, что означает, что URL-адрес запроса будет обновляться с помощью URI запроса.

<route>
   <from uri="-------"/>
   <to uri="jetty://http://localhost:9090/my.html?bridgeEndpoint=true"/
   <to uri="log:events"/>
</route>
...