【问题标题】:How to define `TcpOutboundGateway` bean in Java class configuration如何在 Java 类配置中定义 `TcpOutboundGateway` bean
【发布时间】:2015-08-16 17:42:20
【问题描述】:

当我尝试定义TcpOutboundGateway bean 时,我发现该类没有requestChannelreplyChannelName 设置器。如何在我的 Java 类配置中正确定义该 bean?

哪个 Java 类配置与下面介绍的 XML 配置相同?

<int-ip:tcp-outbound-gateway id="outGateway"
        request-channel="input"
        reply-channel="clientBytes2StringChannel"
        connection-factory="client"
        request-timeout="10000"
        reply-timeout="10000"/>

【问题讨论】:

    标签: java spring integration gateway outbound


    【解决方案1】:

    这段代码等同于link提供的客户端xml配置。

    public static final String STRING_TO_BYTES_CHANNEL = "stringToBytesChannel";
    public static final String REQUEST_CHANNEL = "requestChannel";
    
    private String host = "localhost";
    private int port = 2020;
    
    @Bean
    public TcpNetClientConnectionFactory connectionFactory() {
        TcpNetClientConnectionFactory factory = new TcpNetClientConnectionFactory(host, port);
        factory.setSingleUse(true);
        factory.setSoTimeout(10000);
        return factory;
    }
    
    @Bean
    public MessageChannel requestChannel() {
        return new DirectChannel();
    }
    
    @Bean
    public MessageChannel stringToBytesChannel() {
        return new DirectChannel();
    }
    
    @Bean
    @Transformer(inputChannel = STRING_TO_BYTES_CHANNEL)
    public ObjectToStringTransformer objectToStringTransformer() {
        return new ObjectToStringTransformer();
    }
    
    @Bean
    @ServiceActivator(inputChannel = REQUEST_CHANNEL)
    public TcpOutboundGateway outboundGateway() {
        TcpOutboundGateway gateway = new TcpOutboundGateway();
        gateway.setConnectionFactory(connectionFactory());
        gateway.setReplyChannel(stringToBytesChannel());
        gateway.setRequestTimeout(10000);
        gateway.setRemoteTimeout(10000);
        return gateway;
    }
    
    @MessagingGateway(defaultRequestChannel = REQUEST_CHANNEL)
    public interface RequestGateway {
        String send(String message);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 2021-09-22
      • 2017-03-19
      • 1970-01-01
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多