为使用DSL的传出网关的响应指定转换器的首选方式是什么

时间:2018-08-27 18:46:09

标签: spring-integration spring-integration-dsl

我有以下代码:

@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. 是否可以将单个类用于两个转换?

由Artem解答 进行自定义协议的正确方法是使用自定义序列化器/反序列化器。

1 个答案:

答案 0 :(得分:0)

您只需要在流中的.transform(...)之后添加一个.handle(Tcp.outboundGateway(...))

好吧,您可以对请求和响应使用相同的类,但是我认为在响应的情况下,您需要根据byte[]创建一个ISO对象,因此您需要将方法名称指定为第二个.transform()自变量,以使目标转换端点更清楚。