Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to get the value of propetry and set payload in proxy wso2 esb
    text
    copied!<p>Here is my proxy code:</p> <pre><code>&lt;proxy xmlns="http://ws.apache.org/ns/synapse" name="ProviderPublication" transports="https,http" statistics="disable" trace="disable" startOnLoad="true"&gt; &lt;target&gt; &lt;inSequence&gt; &lt;filter xmlns:p="http://www.openoandm.org/xml/ISBM/" xpath="//p:OpenPublicationSession"&gt; &lt;then&gt; &lt;property xmlns:xs="http://www.openoandm.org/xml/ISBM/" name="ChannelURI" expression="//xs:ChannelURI" scope="default" type="STRING"/&gt; &lt;class name="wso2.org.Communicator.OpenPublication"&gt; &lt;property name="channelURI" value="myChannelURI"/&gt; &lt;/class&gt; **&lt;property name="sessionIDFromClassMediator" expression="get-property('SessionID')" scope="default" type="STRING"/&gt;** &lt;header name="To" action="remove"/&gt; &lt;property name="RESPONSE" value="true" scope="default" type="STRING"/&gt; &lt;property name="NO_ENTITY_BODY" scope="axis2" action="remove"/&gt; &lt;payloadFactory&gt; &lt;format&gt; &lt;ns1:OpenPublicationSessionResponse xmlns:ns1="http://www.openoandm.org/xml/ISBM/"&gt; &lt;ns1:SessionID&gt;$1&lt;/ns1:SessionID&gt; &lt;/ns1:OpenPublicationSessionResponse&gt; &lt;/format&gt; &lt;args&gt; &lt;arg expression="get-property('sessionIDFromClassMediator')"/&gt; &lt;/args&gt; &lt;/payloadFactory&gt; &lt;send/&gt; &lt;/then&gt; &lt;else&gt; &lt;filter xpath="//p:PostPublication"&gt; &lt;then&gt; &lt;property xmlns:xs="http://www.openoandm.org/xml/ISBM/" name="SessionID" expression="//xs:SessionID" scope="default" type="STRING"/&gt; &lt;property xmlns:xs="http://www.openoandm.org/xml/ISBM/" name="Topic" expression="//xs:Topic" scope="default" type="STRING"/&gt; &lt;property xmlns:xs="http://www.openoandm.org/xml/ISBM/" name="Expiry" expression="//xs:Expiry" scope="default" type="STRING"/&gt; &lt;property xmlns:ns="http://www.openoandm.org/xml/ISBM/" name="MessageContent" expression="//MessageContent" scope="default" type="STRING"/&gt; &lt;class name="wso2.org.postPublication.PostPublication"&gt; &lt;property name="topic" value="Sports"/&gt; &lt;property name="sessionID" value="session_001"/&gt; &lt;property name="messagecontent" value="Cricket on air"/&gt; &lt;property name="expiry" value="Monday"/&gt; &lt;/class&gt; &lt;property name="getMessageIDFromClassMed" expression="get-property('MessageID')" scope="default" type="STRING"/&gt; &lt;log level="full"&gt; **&lt;property name="SessionIDFromFstFltr" expression="get-property('sessionIDFromClassMediator')"/&gt;** &lt;/log&gt; </code></pre> <p>I AM NOT ABLE TO GET THE PROPERTY VALUE OF sessionIDFromClassMediator SO MY FILTER NEVER GETS TRUE AND CAN'T GET INSIDE THE FILTER</p> <pre><code> **&lt;filter xpath="get-property('sessionIDFromClassMediator') = get-property('SessionID')"&gt; &lt;then&gt; &lt;log level="custom"&gt; &lt;property name="STATE" value="message is sent to queue"/&gt; &lt;/log&gt; &lt;property name="OUT_ONLY" value="true"/&gt; &lt;property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/&gt; &lt;header name="To" action="remove"/&gt; &lt;property name="RESPONSE" value="true" scope="default" type="STRING"/&gt; &lt;property name="NO_ENTITY_BODY" scope="axis2" action="remove"/&gt; &lt;payloadFactory&gt; &lt;format&gt; &lt;ns1:PostPublicationResponse xmlns:ns1="http://www.openoandm.org/xml/ISBM/"&gt; &lt;ns1:MessageID&gt;$1&lt;/ns1:MessageID&gt; &lt;/ns1:PostPublicationResponse&gt; &lt;/format&gt; &lt;args&gt; &lt;arg expression="get-property('getMessageIDFromClassMed')"/&gt; &lt;/args&gt; &lt;/payloadFactory&gt; &lt;send/&gt; &lt;/then&gt; &lt;else&gt; &lt;log level="full"&gt; &lt;property name="FilterNotRunning" value="----------FilterNotRunning------------------"/&gt; &lt;/log&gt; &lt;drop/&gt; &lt;/else&gt; &lt;/filter&gt;** &lt;/then&gt; &lt;else&gt; &lt;drop/&gt; &lt;/else&gt; &lt;/filter&gt; &lt;/else&gt; &lt;/filter&gt; &lt;/inSequence&gt; &lt;endpoint&gt; &lt;address uri="jms:/myQueue?&amp;transport.jms.DestinationType=queue"/&gt; &lt;/endpoint&gt; </code></pre> <p></p> <p>So i want to get the value of <code>&lt;property name="sessionIDFromClassMediator" expression="get-property('SessionID')" scope="default" type="STRING"/&gt;</code> so that i can use this property value to match with Other Property after </p> <pre><code>&lt;class name="wso2.org.postPublication.PostPublication"&gt; &lt;property name="topic" value="Sports"/&gt; &lt;property name="sessionID" value="session_001"/&gt; &lt;property name="messagecontent" value="Cricket on air"/&gt; &lt;property name="expiry" value="Monday"/&gt; &lt;/class&gt; </code></pre> <p>and after that i am sending message to Message broker but before that i want to associate a payload which should be send to the queue of message broker. I want to implement payload inside </p> <p>I AM NOT ABLE TO GET THE PROPERTY VALUE OF sessionIDFromClassMediator SO MY FILTER NEVER GETS TRUE AND CAN'T GET INSIDE THE FILTER</p> <pre><code> **&lt;filter xpath="get-property('sessionIDFromClassMediator') = get-property('SessionID')"&gt; &lt;then&gt; &lt;log level="custom"&gt; &lt;property name="STATE" value="message is sent to queue"/&gt; &lt;/log&gt; &lt;property name="OUT_ONLY" value="true"/&gt; &lt;property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/&gt; &lt;header name="To" action="remove"/&gt; &lt;property name="RESPONSE" value="true" scope="default" type="STRING"/&gt; &lt;property name="NO_ENTITY_BODY" scope="axis2" action="remove"/&gt; &lt;payloadFactory&gt; &lt;format&gt; &lt;ns1:PostPublicationResponse xmlns:ns1="http://www.openoandm.org/xml/ISBM/"&gt; &lt;ns1:MessageID&gt;$1&lt;/ns1:MessageID&gt; &lt;/ns1:PostPublicationResponse&gt; &lt;/format&gt; &lt;args&gt; &lt;arg expression="get-property('getMessageIDFromClassMed')"/&gt; &lt;/args&gt; &lt;/payloadFactory&gt; &lt;send/&gt; &lt;/then&gt; &lt;else&gt; &lt;log level="full"&gt; &lt;property name="FilterNotRunning" value="----------FilterNotRunning------------------"/&gt; &lt;/log&gt; &lt;drop/&gt; &lt;/else&gt; &lt;/filter&gt;** </code></pre> <p>part.THE MAIN PROBLEM IS THAT THE FIRST FILTER IS EXECUTED WHEN I ENVOKE OPERATION OPENPUBLICATION, AND WHEN I ENVOKE THE SECOND OPERATION ALL THE PROPERTY VALUE GET RESET. SO HOW CAN I MAKE PROPERTY VALUE PERSISTENT SO THAT IT IS NEVER LOST? Hope you understand my question and looking forward to your solutions. Thanks in advance</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload