我知道这是一个类似的问题: Spring Integration. Unknown host and tcp-connection-factory
但是,在我的特定情况下,tcp连接是基于si消息流建立的。我正在写一个" fakes"用户通过tcp / ip连接登录到特定站点。主机/端口每周更改一次,因此我更喜欢动态设置连接。因此,目标服务器的主机/ IP不是静态的。
我仍然想知道除了[动态ftp示例]之外是否有任何方法为每个tcp / ip连接设置一个全新的applicationContext并修改连接工厂,这是非常重要的工作。
我理想的情况是:
<int-ip:tcp-outbound-gateway id="outGateway"
request-channel="input"
reply-channel="clientBytes2StringChannel"
connection-factory="client"
connection-host="#{headers.dest.host}"
connection-port="#{headers.dest.port}"
request-timeout="10000"
reply-timeout="10000"/>
<int-ip:tcp-connection-factory id="client"
type="client"
host="#{headers.dest.host}"
port="#{headers.dest.port}"
single-use="true"
so-timeout="10000"/>
目标主机和端口位于邮件头内。
我知道我的用例很少见,但它在我的特定业务逻辑中非常有用。我的整个webapp基于来自那些原始tcp-ip连接的消息运行。
答案 0 :(得分:1)
它目前不可能/容易 - 即使您为tcp-connection-factory定制或扩展类以便能够连接到更改的主机。有一个open new feature request in JIRA来提供该功能。 Simillar question here