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(); 
    } 
} 

如果有人能对此有所了解,我将不胜感激!

谢谢!

  • 蒂姆
4

1 回答 1

0

能贴出详细的配置和代码吗?尤其是 #myDecoder 和 OutputProcessor bean。

我认为那些 2 出了点问题。您在日志中看到一些错误吗?

于 2013-10-06T02:44:37.743 回答