Java Apache 2未使用套接字接收数据
我一直在尝试通过套接字编程将数据发送到apachecamel,并尝试使用apachemina2。其思想是通过TCP将数据发送到Camel。对于TCP,我使用套接字编程。这就是我的代码用于Mina2的内容: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
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示例。