Spring Integration - TCP-клиент работает в Windows, но не может получать данные в Unix - PullRequest
0 голосов
/ 15 марта 2019

Я создал TCP-клиент при весенней загрузке, используя два прямых канала, один для входного потока или для выходного потока. Проблема в том, что когда я запускаю его в Windows и подключаюсь к автономному серверу, который отправляет и получает данные клиенту, он работает нормально. НО, когда я перемещаю банки в Unix, клиент отправляет данные, которые получает сервер, но когда сервер отправляет данные обратно клиенту, он не получает.

Есть идеи? Как я могу настроить Gateway для этой цели, используя конфигурацию весенней загрузки.

1 Ответ

0 голосов
/ 15 марта 2019

Из-за утечки информации и конфигурации мы можем только предположить, что проблема связана с разделителем сообщений.По умолчанию это используется в AbstactConnectionFactory:

private volatile Deserializer<?> deserializer = new ByteArrayCrLfSerializer();

private volatile Serializer<?> serializer = new ByteArrayCrLfSerializer();

Этот ByteArrayCrLfSerializer основан на разделителе сообщений private static final byte[] CRLF = "\r\n".getBytes();.

Таким образом, это может быть просто фактом, что вашСервер отправляет сообщение с разделителем, который не понимается клиентом.

Подробнее об этом типе кодека см. в документации: https://docs.spring.io/spring-integration/docs/current/reference/html/#message-demarcation-serializers-and-deserializers

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...