2011-04-13 52 views
13

我現在開始與駱駝。我已經看到http客戶端的http4組件和http服務器的jetty組件。Apache Camel http http路由(是否有可能?)

我看過幾個使用其中一個的例子。 我想知道是否有可能將它們結合在一起。

from("jetty:http://0.0.0.0:8080/myapp/myservice") 
.to("http4://www.google.com"); 

這將使駱駝一個簡單的HTTP基於路由器/代理。網頁瀏覽器會碰到駱駝網址,而不是谷歌。 (谷歌只是一個例子,我有一個真正的POST服務,我想用)

這條路線可能嗎?我應該研究駱駝嗎?還是我需要一個不同的軟件框架?在將來,我還需要在兩者之間添加轉換/過濾器​​。

我已經嘗試過了,並得到了一個空指針異常

[qtp757856402-14] SendProcessor  DEBUG >>>> Endpoint[http4://www.google.com] Exchange[Message: [Body is instance of java.io.InputStream]] 
[qtp757856402-14] DefaultErrorHandler DEBUG Failed delivery for exchangeId: ID-IT12-53265-1302683969823-0-1. On delivery attempt: 0 caught: java.lang.NullPointerException 
[qtp757856402-14] DefaultErrorHandler ERROR Failed delivery for exchangeId: ID-IT12-53265-1302683969823-0-1. Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException 
java.lang.NullPointerException 
+0

您是否爲新(google.com)地址創建了終點? – Padmarag 2011-04-13 09:10:50

回答

30

您需要彌合端點。

from("jetty:http://0.0.0.0:8080/myapp/myservice") 
.to("http4://www.google.com?bridgeEndpoint=true&throwExceptionOnFailure=false"); 
+3

令我印象深刻!我自己從專家那裏得到了答案!謝謝!請繼續監測駝峯問題的stackoveflow ... – kazanaki 2011-04-14 10:34:12

+4

我只是護理社區。這也很重要。在途中,您將瞭解最終用戶使用駱駝的方式。 – 2011-04-14 15:05:50

+2

我們已經添加了關於此解決方案的網頁:http://camel.apache.org/how-to-use-camel-as-a-http-proxy-between-a-client-and-server.html – 2012-08-26 07:39:38