用于UDP / TCP传输的Mule ESB条件交换模式

时间:2016-02-25 19:34:29

标签: tcp request mule response

我需要为某些消息发送确认响应,为此目的设置了一个确认需要的标志。

使用Java组件我使用以下结构构建Payload字符串数组:

Payload[0]=message entry.
Payload[1]="true"/"false" // This is the acknowledge needed flag. 
Payload[2]="OK"/"ON"/"OFF"// Response to the transport (went flag="true")

这是我的XML代码

<tcp:connector name="TCP" validateConnections="false" sendBufferSize="0" receiveBufferSize="0" receiveBacklog="0" keepAlive="true" clientSoTimeout="10000" serverSoTimeout="10000" socketSoLinger="0" doc:name="TCP">
    <tcp:direct-protocol rethrowExceptionOnRead="true" payloadOnly="true"/>
</tcp:connector>
    <flow name="verifyFlow">
    <tcp:inbound-endpoint exchange-pattern="request-response" host="localhost" port="9446" connector-ref="TCP" responseTimeout="10000" doc:name="TCP" transformer-refs="Byte_Array_to_String"/>
    <component class="verify.as" doc:name="Java Component"/>
    <choice doc:name="Choice">
        <when expression="#[message.payload[1] == 'false']">
            <set-payload value="&quot;&quot;" doc:name="No response"/>
        </when>
        <otherwise>
            <expression-transformer mimeType="text/plain" expression="#[message.payload[2]]" doc:name="Expression"/>
        </otherwise>
    </choice>
</flow>

我面临的问题是,标志是“假”,不应该有任何响应发送到传输(没有'null'值,没有空字符串,没有“”,等等)¿是有没有办法将TCP(或UDP)连接器的交换模式从请求 - 响应更改为流内的一种方式?

0 个答案:

没有答案