我是Apache Camel的新手,非常感谢有人能提供我可以用来解决特定任务的骆驼组件。 我有一个简单的REST WS。受众无法访问此服务。 我们的想法是在用户请求和端点服务之间构建中间层。 因此,我将不得不捕获用户的请求,对其进行一些操作,发送到受限制的WS并给用户做出响应。 我刚刚开始学习apache camel,问题是实现这个逻辑的最佳方法是什么。 Thx提前!
答案 0 :(得分:0)
坦率地说,Camel不是实现Web控制器的正确框架。当然有Camel Rest Module,但它正在将框架的职责范围扩大到太远。
我建议使用更适应的框架来实现WS,例如: Spring 或 Jersey ,并以编程方式从请求处理程序中调用Camel端点。在Spring中,触发Camel端点非常简单,因为CamelContext可以自动连接到您的Web控制器中:
camelContext.createProducerTemplate().sendBodyAndHeader("direct:myEndpoint", null, "id", id);
对于你的Camel Root,这种方法意味着它以Direct endpoint开始,然后转发到Camel http端点,如果需要,将HTTP调用的输出转发到一些Spring bean转换步骤,在最终将其传递回Web控制器处理程序方法之前:
<route>
<from uri="direct:myEndpoint"/>
<to uri="http:somehost.com"/>
<transform>
<method ref="springBean" method="doSomeTransformation"/>
</transform>
</route>
答案 1 :(得分:0)
你可以使用几个camel组件来完成这项任务。将Camel视为一个工具箱,您可以从中选择多个工具来完成相同的任务。
您可以使用:
使用java dsl的示例:
from("jetty://http://localhost:7070/test").to("jetty://http://localhost:7070/test1");
使用蓝图的示例
<route>
<from uri="jetty://http://localhost:7070/test"/>
<to uri="jetty://http://localhost:7070/test1"/>
<route>