将属性值作为代理服务中的响应返回

时间:2013-04-02 08:22:08

标签: wso2 wso2esb

我有一种情况,我已经创建了一个代理服务,其中我使用了内联wsdl,以便我可以从try-it工具传递一些数据。之后我想把数据从try-it传递到seq,我能够做到。之后没有使用inline-wsdl。在“顺序”中我使用了一个自定义类中介,我在其中设置了一个名为“user”的属性,并且我已在Property mediator中保存了该属性值(user)。现在我想通过序列发送此属性作为响应。如何做到这一点。请帮忙... 我的代理代码是:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="ProviderPublication" transports="https,http" statistics="disable" trace="disable" startOnLoad="false">
   <target>
      <inSequence>
         <property xmlns:xs="http://www.openandaway.org/xml/BBC/" name="URI" expression="//xs:SessionID" scope="default" type="STRING"/>
         <payloadFactory>
            <format>
               <p:Session xmlns:p="http://www.openandaway.org/xml/BBC/">
                  <xs:ChannelURI xmlns:xs="http://www.openandaway.org/xml/BBC/">$1</xs:ChannelURI>
               </p:Session>
            </format>
            <args>
               <arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('URI')"/>
            </args>
         </payloadFactory>
         <log level="full">
            <property name="Inside_In_Sequence" value="---------Hi i am inside in sequence--------------"/>
         </log>
         <log level="full">
            <property name="PropValFromURI" expression="get-property('URI')"/>
         </log>
      </inSequence>
      <outSequence>
         <log level="full">
            <property name="Inside_Out_Sequence" value="-------Hi inside Out Sequence--------------------"/>
         </log>
         <property name="GetDataFromINSeq" expression="get-property('URI')" scope="default" type="STRING"/>
         <log level="full">
            <property name="GetPropValueFromInSeq" expression="get-property('URI')"/>
         </log>
         <send/>
      </outSequence>
   </target>
   <publishWSDL uri="http://10.224.188.87:2425/BBC1.0/services/BBCPublicationService?wsdl"/>
   <description></description>
</proxy>

在上面的代码中,我无法进入输出序列。它没有达到顺序。我在哪里做错了?

2 个答案:

答案 0 :(得分:0)

您可以在后台访问该属性。请参考以下主题。

stWSO2ESB OutSequence Processing

Pass property from inSequence to outSequence

答案 1 :(得分:0)

在您的代理的顺序中,我没有看到您将消息发送到任何后端。即我没有按顺序看到发送部分。如果没有消息传出,则无法响应来到序列。

关于访问类中介设置的属性的原始问题,如果设置范围设置为“synapse”的属性,则可以在代理中的任何位置访问该属性。