Camel中的无限循环:消息代理到soap

时间:2016-01-26 00:42:24

标签: java spring soap apache-camel rabbitmq

我已经在apache camel中定义了路由,它读取队列,然后向soap web服务发送请求,然后将其传递给rabbit mq上的响应队列,问题是这条路由成为从rabbitmq队列到soap web的无限路由服务,即使它只包含一条消息。 以下是代码,

<route >
            <from uri="rabbitmq://localhost/exchangename?username=user&amp;password=password;autoDelete=false&amp;routingKey=key;queue=nameofqueue" />
            <convertBodyTo type="java.lang.String" />
            <to uri="cxf:bean:helloWorldEndpoint?defaultOperationName=sayHelloWorld" />
            <to uri="rabbitmq://localhost/response exchange?username=name&amp;password=passwd&amp;routingKey=responsekey&amp;autoDelete=false&amp;queue=nameofresponsequeue" />
</route> 

我做错了什么?

编辑:所以我尝试将最后一个“转移”到“文件”组件,它没有任何问题。但它与RabbitMq有关。在此路线之前,我还有另一条路线如下:

<route id="differentRoute">
            <from uri="file:C:\\file" />            
            <to uri="rabbitmq://localhost/exchangename?username=user&amp;password=password;autoDelete=false&amp;routingKey=key;queue=nameofqueue" />
</route>

所以我正在从文件中读取,在第一个路由中发送请求队列,然后在第二个路由中从请求队列中读取,发送soap请求,然后将响应放入响应队列中。

1 个答案:

答案 0 :(得分:0)

可以添加参数

dataFormat=MESSAGE on the cxf endpoint

由于您要发送普通的xml,因此数据格式需要是消息,如果您要发送POJO,请发布堆栈跟踪。