【问题标题】:Infinite loop in Camel : message broker to soapCamel 中的无限循环:到肥皂的消息代理
【发布时间】:2016-01-26 00:42:23
【问题描述】:

我在 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> 

我做错了什么?

编辑:所以我尝试将最后一个“to”转换为“file”组件,它可以正常工作,没有任何问题。所以它与 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请求,然后将响应放入响应队列中。

【问题讨论】:

    标签: java spring soap apache-camel rabbitmq


    【解决方案1】:

    能不能加个参数

    dataFormat=MESSAGE on the cxf endpoint
    

    由于您发送的是纯 xml ,因此数据格式需要为 message ,如果您发送 POJO ,请发布堆栈跟踪。

    【讨论】:

    • 这与 cxf 端点无关,因为如果我更改最后一个“to”文件,它可以正常工作,没有任何问题。
    猜你喜欢
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多