4

我正在运行 servicemix 4.4.1。我正在尝试使用 camel-http4 对网站进行 http 调用。无论我尝试调用哪个网站,我都会收到此错误:org.apache.camel.RuntimeCamelException: org.apache.camel.component.http.HttpOperationFailedException: HTTP operation failed invoking http://servicemix.apache.org/downloads /servicemix-4.4.0.html 状态码: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 与 get),但我一直收到相同的错误。任何的想法?提前致谢。

4

2 回答 2

2

您指定的网站不是表单的目标。所以很可能它只允许 GET 请求而不是 POST。所以尝试将 CamelHttpMethod 设置为 GET。

顺便提一句。你想用你的路线实现什么?如果您想将 activeMQ 消息发送到网站,那么 POST 是可以的,但您必须使用接受 POST 的网站。

您可以通过定义自己的路由来接收请求来实现这一点。

然后您可以在第一条路线中发送到该网址。

于 2012-03-19T06:45:56.833 回答
2

我检查了这个;通过设置选项“bridgeEndpoint”解决的问题;您将 http 端点设置为 bridgeEndpoint,这意味着请求 url 将使用请求 URI 进行更新。

<route>
   <from uri="-------"/>
   <to uri="jetty://http://localhost:9090/my.html?bridgeEndpoint=true"/
   <to uri="log:events"/>
</route>
于 2012-06-30T19:41:27.063 回答