Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache 2未使用套接字接收数据_Java_Sockets_Tcp_Apache Camel_Mina - Fatal编程技术网

Java Apache 2未使用套接字接收数据

Java Apache 2未使用套接字接收数据,java,sockets,tcp,apache-camel,mina,Java,Sockets,Tcp,Apache Camel,Mina,我一直在尝试通过套接字编程将数据发送到apachecamel,并尝试使用apachemina2。其思想是通过TCP将数据发送到Camel。对于TCP,我使用套接字编程。这就是我的代码用于Mina2的内容: public void configure() throws Exception { from("mina2:tcp://localhost:6789?sync=false") .process(new LogProcessor()); } LogProcessor仅使用exchan

我一直在尝试通过套接字编程将数据发送到apachecamel,并尝试使用apachemina2。其思想是通过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)

这段代码适用于ApacheMina,如下所示:

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子句中添加一些参数


请帮助。

这是由于mina2消费者没有从in消息中获得响应造成的。您需要像这样在日志处理器中设置out消息

 exchange.getOut().getBody("response message");

您是否尝试添加
textline=true
参数?是的,我尝试了from(“mina2:tcp://localhost:6789?textline=true"). 但这不起作用:(确切的问题是什么?您能告诉服务器是否正在接收请求?客户端是否收到响应?您能检查服务器是否正在侦听套接字吗?是的,服务器正在侦听套接字,并且存在网络流量。同一段代码适用于Mina,但不适用于Mina2。它一直在等待输入,并且在数据到达后不执行下一个操作。事实上getBody接受类参数而不是字符串。这不起作用:(.Camel的网站也有一个getin示例。