我希望有人可以帮助我解决我的问题。我有一个将 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&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();
}
}
如果有人能对此有所了解,我将不胜感激!
谢谢!
- 蒂姆