我有一种情况,我已经创建了一个代理服务,其中我使用了内联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>
在上面的代码中,我无法进入输出序列。它没有达到顺序。我在哪里做错了?
答案 0 :(得分:0)
答案 1 :(得分:0)
在您的代理的顺序中,我没有看到您将消息发送到任何后端。即我没有按顺序看到发送部分。如果没有消息传出,则无法响应来到序列。
关于访问类中介设置的属性的原始问题,如果设置范围设置为“synapse”的属性,则可以在代理中的任何位置访问该属性。