我已经在apache camel中定义了路由,它读取队列,然后向soap web服务发送请求,然后将其传递给rabbit mq上的响应队列,问题是这条路由成为从rabbitmq队列到soap web的无限路由服务,即使它只包含一条消息。 以下是代码,
<route >
<from uri="rabbitmq://localhost/exchangename?username=user&password=password;autoDelete=false&routingKey=key;queue=nameofqueue" />
<convertBodyTo type="java.lang.String" />
<to uri="cxf:bean:helloWorldEndpoint?defaultOperationName=sayHelloWorld" />
<to uri="rabbitmq://localhost/response exchange?username=name&password=passwd&routingKey=responsekey&autoDelete=false&queue=nameofresponsequeue" />
</route>
我做错了什么?
编辑:所以我尝试将最后一个“转移”到“文件”组件,它没有任何问题。但它与RabbitMq有关。在此路线之前,我还有另一条路线如下:
<route id="differentRoute">
<from uri="file:C:\\file" />
<to uri="rabbitmq://localhost/exchangename?username=user&password=password;autoDelete=false&routingKey=key;queue=nameofqueue" />
</route>
所以我正在从文件中读取,在第一个路由中发送请求队列,然后在第二个路由中从请求队列中读取,发送soap请求,然后将响应放入响应队列中。
答案 0 :(得分:0)
可以添加参数
dataFormat=MESSAGE on the cxf endpoint
由于您要发送普通的xml,因此数据格式需要是消息,如果您要发送POJO,请发布堆栈跟踪。