我对Apache Camel很不熟悉,如果有人能给我提供哪些骆驼组件可以用来解决特定的任务,我将非常感激。我有一个简单的REST WS。观众无法访问此服务。这个想法是在用户请求和endpoint服务之间建立中间层。所以我必须捕捉用户的请求,对其进行一些操作,发送到受限制的WS,并给用户一个响应。我刚刚开始学习apache Camel,问题是实现这个逻辑的最佳方法是什么。提前谢谢!
有几个camel组件可用于此任务。把Camel想象成一个工具箱,你可以从多个工具中为同一个任务进行选择。
你可以使用:
使用java dsl的示例:
from("jetty://http://localhost:7070/test").to("jetty://http://localhost:7070/test1");
使用blueprint的示例
<route>
<from uri="jetty://http://localhost:7070/test"/>
<to uri="jetty://http://localhost:7070/test1"/>
<route>
坦率地说,Camel不是实现web控制器的合适框架。当然有Camel Rest模块,但是它把框架的责任延伸得太远了。
我建议使用一个更适应的框架来实现WS,例如Spring或泽西,并通过请求处理程序以编程方式调用Camel终结点。在Spring中,触发Camel终结点很容易,因为CamelContext可以自动加载到您的网络控制器中:
camelContext.createProducerTemplate().sendBodyAndHeader("direct:myEndpoint", null, "id", id);
对于Camel Root,这种方法意味着它从一个直接endpoint开始,然后转发到Camel httpendpoint,如果需要,将http调用的输出转发到某个Spring bean转换步骤,最后将其传递回web控制器处理程序方法:
<route>
<from uri="direct:myEndpoint"/>
<to uri="http:somehost.com"/>
<transform>
<method ref="springBean" method="doSomeTransformation"/>
</transform>
</route>
我正在尝试向异步路由发送消息,但它不起作用。我刚刚在github上创建了一个项目来模拟这个问题
我正在使用apache camel cxf开发一个Web服务(肥皂),我遇到了这个错误。 Java . lang . illegalargumentexception:Part { http://blue print . camel . ngt . TN/}返回的类型应为[ltn . ngt . camel . blue print . WB _ subscriptions;,而不是org . A
我有一个restendpoint示例。org,返回表单的json响应 我的路线是这样的 我读过关于轮询消费者的内容,但找不到如何继续轮询endpoint的示例,直到它返回“success”响应。 是否应该使用轮询消费者?如果是这样的话,可以举一个与我的案例相关的例子。用于轮询restendpoint的任何其他资源都非常有用。
我试图在聚合器完成后获得一个回复,但是我得到一个异常,我没有指定任何聚合器子项,但是当我指定一个。to()endpoint我没有收到聚合结果。。。这可能吗? 控制器: 聚合器:
我想测试以下骆驼路线。我在网上找到的所有例子都有以文件开头的路由,在我的例子中,我有一个Springbean方法,每隔几分钟就会被调用一次,最后消息被转换并移动到jms以及审计目录。 我对这条路线的写测试毫无头绪。目前我在测试用例中所拥有的是
我从基于apache-camel-spark的rest接口获得一个json数组作为输入。开始时,我想通过apache camels路线分割json-array来处理每个元素。我该怎么做? 我的测试输入json: 对于这个问题,我在stackoverflow上找到了一些间接描述的问题: link 1, link 2, link 3。 根据这些示例,我尝试了以下骆驼路线: 当我这样做时,我总是得到以下
Apache Camel:2.12.2,activemq:5.7 我们注意到,在下面的路由中,对于前100次交换,节流工作正常。此后,它不是每秒发送100次交换,而是每秒仅发送1次交换。现在,如果我们将timePeriodMillis设置为100,它似乎可以正常工作。注意,我们同时发送500个交换。
注意:这大部分是Java特有的-需要语言特有的调用方法 如果没有获得Vertx对象,Vert.x做不了什么。 Vertx对象是 Vert.x 的控制中心,几乎可以做所有事,包括创建客户端和服务器,获取引用到事件总线(event bus)、 设置计时器等。 所以怎么获得Vertx实例? 如果已经嵌入了 Vert.x,然后只需创建一个实例,如下所示: Vertx vertx = Vertx.vertx