如何在wso 2 esb中调用web-service后获取队列中的消息id

时间:2017-02-11 14:26:38

标签: web-services wso2esb

我使用的是wso2ESB版本4.9.0 我有个问题。我的代理如下:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="InOnlyProxy"
       transports="http,https"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <log level="full"/>
         <log level="custom">
            <property xmlns:ns="http://org.apache.synapse/xsd"
                      name="MESSAGE_ID_BOFORE"
                      expression="get-property('MessageID')"/>
         </log>
         <store messageStore="s2"/>
        </inSequence>
   </target>
   <description/>
</proxy>


<messageProcessor name="Processor2" class="org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor" targetEndpoint="EndPoint1" messageStore="s2" xmlns="http://ws.apache.org/ns/synapse">
   <parameter name="interval">1000</parameter>
   <parameter name="client.retry.interval">1000</parameter>
   <parameter name="max.delivery.attempts">4</parameter>
   <parameter name="message.processor.reply.sequence">replySequence</parameter>
   <parameter name="is.active">true</parameter>
   <parameter name="max.delivery.drop">Disabled</parameter>
   <parameter name="member.count">1</parameter>
</messageProcessor>  


<?xml version="1.0" encoding="UTF-8"?>
<sequence name="replySequence" trace="enable" xmlns="http://ws.apache.org/ns/synapse">
    <log level="full">
        <property name="REPLY" value="MESSAGE"/>
    </log>
   <send/>
</sequence>

假设我的web服务有一个message_id参数,当我用message_id = 10调用这个web服务时,web-service返回与10相同的message_id。

所以现在我在没有message_id的情况下调用web-service 我想在队列中保存一条消息,并在队列中保存messageProcessor调用消息。所以我想在replaySequence中获取身份信息的ID。我使用消息ID但是在呼叫之后呼叫是不同的消息ID。那么你可以帮我识别身份信息吗?

我想使用Message-id在replaySequence中调用另一个web服务。

感谢。

0 个答案:

没有答案