Apache Camel http 到 http 路由(有可能吗?)

Posted

技术标签:

【中文标题】Apache Camel http 到 http 路由(有可能吗?)【英文标题】:Apache Camel http to http routing (Is it possible?) 【发布时间】:2011-08-04 12:44:09 【问题描述】:

我现在从 Camel 开始。我见过用于 http 客户端的 http4 组件和用于 http 服务器的 jetty 组件。

我见过几个使用其中一个的例子。 我想知道是否可以将它们组合在一起。

例子

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

这将使camel 成为一个简单的基于http 的路由器/代理。网络浏览器会点击骆驼 URL,而不是谷歌。 (Google 只是一个例子,我想使用一个真正的基于 POST 的服务)

这条路线可行吗?我应该研究 Camel 还是需要一个不同的软件框架?将来我还需要在两者之间添加转换/过滤器​​。

我试过了,得到一个空指针异常

[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

【问题讨论】:

您是否为新 (google.com) 地址创建了端点? 【参考方案1】:

您需要桥接端点。

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

【讨论】:

我印象深刻!我得到了大师本人的回答!谢谢!请继续监视 stackoveflow 中的骆驼问题... 我只是在照顾社区。这也很重要。在您了解最终用户如何使用 Camel 的过程中。 我们添加了一个关于此解决方案的页面:camel.apache.org/… 提醒一下,我们在 Camel 2.11 中添加了 url 重写支持,它允许您在桥接时更好地控制 url 映射。此页面将包含更多详细信息(在撰写本文时仍在进行中)-camel.apache.org/urlrewrite 谢谢!这真是太棒了!

以上是关于Apache Camel http 到 http 路由(有可能吗?)的主要内容,如果未能解决你的问题,请参考以下文章

使用状态码 405 获取 org.apache.camel.component.http.HttpOperationFailedException

Apache Camel - Spring 休息端点参考

在基于Apache Camel蓝图的OSGi包中检测到重复的ServletName

Apache Camel - 调用 http 或 rest 调用(通过 Shiro Security 过滤)

Apache Camel - 调用 http 或 rest 调用(通过 Shiro Security 过滤)

Apache Camel http组件计时器dockerization