#spring #sockets #tcp #integration #communication
Вопрос:
В моем приложении требуется отправить строку хосту и получить ответ хоста через TCP-сокет. Я сделал это в простом программировании сокетов Java. Я хочу сделать то же самое, используя интеграцию spring. Я использовал исходящий шлюз TCP, так как ожидаю немедленного ответа от сервера через тот же сокет. Мой запрос доходит до сервера, но, похоже, ответ сервера не доходит до канала ответа. Время ожидания шлюза истекает через некоторое время.
Файл конфигурации пружины:
<int:publish-subscribe-channel id="tcpChannel" />
<int-ip:tcp-connection-factory id="cfClient"
type="client"
host="localhost"
port="8376"
single-use="false"
so-timeout="30000"
connect-timeout="120"/>
<int-ip:tcp-outbound-gateway id="outGateway"
request-channel="tcpChannel"
connection-factory="cfClient"
request-timeout="10000"
remote-timeout="10000"/>
<int:channel id="replyChannel"/>
<int:service-activator input-channel="replyChannel" ref="rs2GatewayListener" method="replyHandler">
</int:service-activator>
Шлюз сообщений:
@MessagingGateway(name="tcpMsgGateway", defaultRequestChannel = "tcpChannel")
public interface Rs2TCPMessagingGateway {
@Gateway
String sendISOMessage(Message<String> isoMsg);
}
Метод replyHanlder никогда не вызывается. Я что-то здесь упускаю. Нужно ли мне использовать какие-либо сериализаторы и десериализаторы. Любые предложения будут оценены по достоинству.