2013-10-04 37 views
0

我希望有人能幫我解決我的問題。我有一個將XML消息發送給Camel的客戶端應用程序。我在Camel中使用Mina2 v2.11.1組件作爲消耗傳入XML的端點。我無法控制客戶端應用程序,並且在大多數情況下,它需要對請求做出響應。但是有2條消息不需要響應。我發現,如果我沒有回覆每條消息,那麼它會斷開連接,但這不是所期望的,因爲它需要維護連接以發送響應或不響應。我試圖設置disconnectOnNoReply = false,但它似乎不工作,因爲它繼續刪除連接。我在駱駝路線設置爲...駝峯組件丟棄連接

<camel:route> 
     <camel:from uri="mina2:tcp://10.5.60.60:9000?codec=#myDecoder&amp;disconnectOnNoReply=false"/> 
     <camel:bean ref="OutputProcessor"/> 
</camel:route> 

難道我做錯了什麼在我的編碼器,是造成這種情況發生?我的編碼器看起來像...

@Override 
public void encode(IoSession is, Object o, ProtocolEncoderOutput peo) throws Exception { 


    if (o != null) { 
     IoBuffer ioBuffer = IoBuffer.allocate(512, false); 
     ioBuffer.setAutoExpand(true); 
     ioBuffer.setAutoShrink(true); 
     byte[] responseByteArr = (byte[]) o; 
     ioBuffer.put(responseByteArr); 
     ioBuffer.flip(); //Flip it or there will be nothing to send 
     peo.write(ioBuffer); 
     peo.flush(); 
    } 
} 

如果任何人都可以對此有所瞭解,我會非常感激!

謝謝!

回答

0

可以爲您發佈的詳細配置和代碼?尤其是#myDecoder和OutputProcessor bean。

我認爲這些問題出了問題2.您是否在日誌中看到錯誤?