Каков предпочтительный способ указания преобразователя для ответа исходящего шлюза с использованием DSL - PullRequest
0 голосов
/ 27 августа 2018

У меня есть следующий фрагмент кода:

@Configuration
@EnableConfigurationProperties(ISOGatewayProperties::class)
class ISOGatewayConfig {

    @Bean
    fun isoGatewayFlow(
        isoProps: ISOGatewayProperties,
        isoTransformer: ISOTransformer) : IntegrationFlow =
            IntegrationFlows
                .from(MessageChannels.direct("isoInChannel"))
                .log()
                .transform(isoTransformer)
                .handle(Tcp.outboundGateway(
                    Tcp.netClient(isoProps.host, isoProps.port)))
                .get()
}

Этот код правильно преобразует запрос, являющийся объектом, в байт [] для отправки на удаленный сервер.

Мои вопросы следующие:

  1. Каков предпочтительный способ преобразования ответа от сервера?
  2. Можно ли использовать один класс для обоих преобразований?

Ответил Артем Правильный способ создания пользовательских протоколов - это использование собственного сериализатора / десериализатора.

1 Ответ

0 голосов
/ 27 августа 2018

Вам просто нужно добавить .transform(...) после этого .handle(Tcp.outboundGateway(...)) в поток.

Хорошо, вы можете использовать один и тот же класс как для запроса, так и для ответа, но я считаю, что в случае ответа вам нужно создать объект ISO из byte[], поэтому вам нужно будет указать имя метода в качестве второго .transform() аргумент, чтобы прояснить конечную точку преобразования цели.

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