2011-04-13 90 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