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 中设置输出消息。

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