2016-01-26 50 views
0

我已經在apache駱駝中定義了讀取隊列,然後發送請求到肥皂web服務,然後傳遞到兔子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請求,然後將響應在響應隊列中。

回答

0

你能添加參數

dataFormat=MESSAGE on the cxf endpoint 

既然你發送一個純XML時,DATAFORMAT必須是消息,如果您要發送POJO,你可以請張貼堆棧跟蹤。

+0

這與cxf端點沒有任何關係,因爲如果我更改最後一個「to」文件,它工作正常,沒有任何問題。 – tec