我的要求是有一个 Web 服务,它将接收来自客户端的请求,然后通过骆驼路由,丰富它并将其转发到其他客户端位置的另一个 Web 服务,获得响应并将其发送回原始请求者。
from(webserviceURI)
.inOut().to("jms:queue:INQueue?replyTo=OUTQueue?replyToType=Exclusive");
from(jms:queue:INQueue).to("http:X").to(jms:OUTQueue)
我理解正确。如果我们这样做,我们是否需要设置回复标题。我想这解决了这个问题。克劳斯(骆驼神:P)的早期文章已经解释过没有必要设置相关ID,因为如果没有分配骆驼,它会自动设置。参考这里
我的问题是我们正在寻找超轻量级的实现。我们可能不得不处理低至 300 MB 的内存。没有 activeMQ,没有 SMX。只需使用 karaf。如果我们需要使用较小的 jms,那么最好的 jms 提供程序是什么足迹.or 是activemq 好的。
我也想这样做
<from uri="cxf:bean:cxfProxyEndpoint?dataFormat=MESSAGE" />
<camel:convertBodyTo type="java.lang.String"></camel:convertBodyTo>
<!-- lot of pre processors here-->
<to uri="http://X:8080/X">
<!-- lot of post processors-->
cxf 代理 web 服务具有返回值的操作。所以我们接收请求,将其发送到预处理器,然后将远程 web 服务作为 http 端点调用,获取响应,后处理它,响应是路由结束时的消息(我是否正确)。我的问题是请求和响应是否匹配。我应该如何测试它。我们还将将请求从代理多播到各种 http 端点,并在将其发送给客户端请求者之前聚合回复。我真的应该继续这条路线还是这是一个糟糕的设计。