誰かが私の問題を解決してくれることを願っています。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();
}
}
誰かがこれに光を当てることができれば、本当に感謝しています!
ありがとう!
- ティム