0

ソケットプログラミングを介してApache Camelにデータを送信しようとしており、 Apache Mina2を使用しようとしています。アイデアは、データを TCP 経由で Camel に送信することです。TCP については、ソケット プログラミングを使用しています。これはMina2の私のコードです:

public void configure() throws Exception {
from("mina2:tcp://localhost:6789?sync=false")
    .process(new LogProcessor());
}

LogProcessorは、受信したメッセージの本文のみを出力します。exchange.getIn().getBody(String.class)

このコードは、次のように Apache Minaで正常に動作します。

from("mina:tcp://localhost:6789?textline=true&sync=true")
    .process(new LogProcessor());

私が使用しているソケット プログラミング クライアント コードは次のとおりです。

  try
      {
         Socket client = new Socket();




         client.connect(new InetSocketAddress("localhost", 6789));

         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out = new DataOutputStream(outToServer);
         System.out.println("After Dataoutput stream");
         out.writeBytes("Content gets received in server\n");

         client.close();
      }

同じコードはMinaでは正常に機能しますが、 Mina2では機能しません。問題の原因を突き止めることができません。Camel の from 句にいくつかのパラメータを追加する必要がありますか。

親切に助けて..

4

1 に答える 1

0

これは、mina2 コンシューマーが in メッセージからの応答を取得しないことが原因です。このように、LogProcessor で out メッセージをセットアップする必要があります。

 exchange.getOut().getBody("response message");
于 2014-12-10T12:37:27.620 に答える