2012-03-18 89 views
2

我正在運行servicemix 4.4.1。我正在嘗試使用camel-http4進行一個http調用。無論我嘗試調用哪個網站,我不斷收到此錯誤: org.apache.camel.RuntimeCamelException:org.apache.camel.component.http.HttpOperationFailedException:HTTP操作失敗,調用http://servicemix.apache.org/downloads/servicemix-4.4.0.html用的StatusCode:405使用狀態碼405獲取org.apache.camel.component.http.HttpOperationFailedException

這裏是我的代碼片段:

<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)試過了,我不斷收到同樣的錯誤。任何想法?提前致謝。

回答

1

您指定的網站不是表單的目標。所以很可能它只會允許GET請求而不是POST。所以嘗試將CamelHttpMethod設置爲GET。

Btw。你想用你的路線達到什麼目的?如果你想發送activeMQ消息到網站,那麼POST是好的,但你必須使用接受POST的網站。

您可以通過定義自己的路線來接收請求來實現。

然後你可以發送到第一個路由中的URL。

+0

謝謝你的幫助。奇怪的是我認爲通過不定義CamelHttpMethod,http方法將被假定爲GET。我試着設置方法來明確而不是POST,這似乎工作。再次感謝您對此的幫助。 – emmitt1219 2012-03-23 06:28:53

+0

駱駝通過查看url來猜測使用哪個http方法。所以它並不總是默認使用get。請參閱http://camel.apache.org/http.html中的「使用GET或POST調用」一節中介紹的算法。 – 2012-05-21 09:38:56

1

我檢查了這個; 問題通過設置選項'bridgeEndpoint'解決; 您正在將http端點設置爲bridgeEndpoint,這意味着請求URL將使用請求URI進行更新。

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

這正是我的問題。感謝這個答案(+1)。 – Luixv 2013-12-17 14:51:18