我试图实现使用Spring Integration的以下情形发送消息:Spring集成接收并通过TCP连接
- 我需要通过TCP IP连接到服务器并接收的过程的消息。
- 我需要将消息发送到接收和处理响应的同一台服务器。
这是我的配置:
<channel id="input">
<interceptors>
<wire-tap channel="logger"/>
</interceptors>
</channel>
<logging-channel-adapter id="logger" level="DEBUG" log-full-message="true"/>
<ip:tcp-connection-factory id="factory" type="client" host="localhost" port="9004" single-use="false"
using-nio="true" deserializer="javaDeserializer"/>
<ip:tcp-inbound-channel-adapter id="inbound" channel="input" connection-factory="factory" client-mode="true"
retry-interval="5000"/>
我可以接收从服务器发送邮件,但我不知道如何将字符串转换。消息到达时不调用javaDeserializer。随着this例如
2014-01-19 05:47:20 DEBUG TcpNioConnection:380 - localhost:9004:74154fb2-f77c-4036-9142-e756e53a6ac6 Reading...
2014-01-19 05:47:20 DEBUG TcpNioConnection:324 - Read 26 into raw buffer
2014-01-19 05:47:25 DEBUG TcpNioConnection:380 - localhost:9004:74154fb2-f77c-4036-9142-e756e53a6ac6 Reading...
2014-01-19 05:47:25 DEBUG TcpNioConnection:324 - Read 26 into raw buffer
2014-01-19 05:47:30 DEBUG TcpNioConnection:380 - localhost:9004:74154fb2-f77c-4036-9142-e756e53a6ac6 Reading...
2014-01-19 05:47:30 DEBUG TcpNioConnection:324 - Read 26 into raw buffer
2014-01-19 05:47:35 DEBUG TcpNioConnection:380 - localhost:9004:74154fb2-f77c-4036-9142-e756e53a6ac6 Reading...
2014-01-19 05:47:35 DEBUG TcpNioConnection:324 - Read 26 into raw buffer
,您可以发送邮件和处理来自服务器的应答,但连接将关闭,而不是不停地监听来自服务器的消息。任何想法如何解决这个问题?
在此先感谢。
Eduardo
您需要更清楚地解释问题;是发送java序列化对象的服务器?如果是这样,这个日志意味着消息不完整,并且解串器正在等待更多数据。采用线程转储(使用'jstack'或'VisualVM')来查看线程正在做什么。 –
服务器发送像这样的文本字符串/ * 00FF99 * /。我需要的是捕捉这些字符串。例如,他们真的来了,但不知道如何将其转换成存储在数据库中。 – earanda