如何在spring MVC应用程序中插入TCP-IP客户端服务器

时间:2013-12-13 19:02:00

标签: spring-mvc spring-integration

我想知道是否可以在spring mvc应用程序和使用TCP-IP连接的旧系统之间插入双向连接。

提到遗留系统使用TCP / ip而不是http,因此无需谈论HTTP如何更好,谢谢!

1 个答案:

答案 0 :(得分:8)

Spring Integration。您可以使用消息传递网关将SI流连接到MVC控制器

Controller-> gateway-> {可选过滤/转换} - > tcp出站网关

网关使用其服务接口注入控制器。

tcp-client-server sample显示了如何。

编辑:

如果样本中不清楚,您需要定义SI流量......

<!-- Client side -->

<int:gateway id="gw"
    service-interface="org.springframework.integration.samples.tcpclientserver.SimpleGateway"
    default-request-channel="input"/>

<int-ip:tcp-connection-factory id="client"
    type="client"
    host="localhost"
    port="1234"
    single-use="true"
    so-timeout="10000"/>

<int:channel id="input" />

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

<int:transformer id="clientBytes2String"
    input-channel="clientBytes2StringChannel"
    expression="new String(payload)"/>

并将网关注入您的@Controller ...

public interface SimpleGateway {

    public String send(String text);

}

@Controller 
public class MyController {

        @Autowired
        SimpleGateway gw;

     ...
}