在wso2 ESB上通过TCP发送数据

时间:2018-08-21 11:42:54

标签: tcp wso2esb wso2ei

我创建了一个代码,外部系统可以在该代码上通过TCP调用wso2 esb并传递数据,这一切正常,没有任何问题,但是反向过程没有发生,我感到困惑。

这里我需要通过TCP将某些数据传递到外部系统,但是我无法这样做,因为开发代理时可用的参数不包含IP地址,它只包含端口号,所以我很好奇关于在代理中未提及IP地址时如何建立通信的问题。

感谢您的帮助。

<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="TCPProxyClient"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <property name="symbol" scope="default" type="STRING" value="IBM"/>
         <enrich>
            <source clone="true" type="inline">
               <m:getQuote xmlns:m="http://services.samples">
                  <m:request>
                     <m:symbol>?</m:symbol>
                  </m:request>
               </m:getQuote>
            </source>
            <target type="body"/>
         </enrich>
         <enrich>
            <source clone="true" property="symbol" type="property"/>
            <target xmlns:m="http://services.samples" xpath="//m:getQuote/m:request/m:symbol"/>
         </enrich>
         <log level="full" separator=","/>
         <send/>
      </inSequence>
      <outSequence>
         <log level="full"/>
         <send/>
      </outSequence>
   </target>
   <parameter name="transport.tcp.responseClient">true</parameter>
   <parameter name="transport.tcp.inputType">string</parameter>
   <parameter name="transport.tcp.recordDelimiter">|</parameter>
   <parameter name="transport.tcp.contentType">text/xml</parameter>
   <parameter name="transport.tcp.port">8691</parameter>
   <parameter name="transport.tcp.recordDelimiterType">character</parameter>
   <description/>
</proxy>

1 个答案:

答案 0 :(得分:0)

仅当代理正在侦听TCP消息时才使用以上参数。要将TCP消息发送到TCP套接字,需要在发送介体中定义一个端点。

<send>
   <endpoint>
     <address uri="tcp://localhost:8001/helloService"/>
   </endpoint>
<send>

按照文档[1]启用axis2.xml中的T​​CP传输发送方。 有关更多信息,请参考问题[2]