我有一个由几个操作组成的wsdl。 我使用该wsdl创建了一个代理服务,并希望公开wsdl中的操作。
我们可以在代理服务中定义特定于操作的流程吗?
更准确地说,在Oracle Service Bus中,它具有分支的概念,我们可以在WSO2 esb代理中实现相同的功能吗?
答案 0 :(得分:0)
您可以根据操作使用过滤器或开关介体来应用中介:查看SOAP Body中的第一个节点,或者如果已初始化,请查看SOAP Action。
基于消息内容的示例(假设这是SOAP 11消息):
<switch xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" source="local-name(soap:Body/*[1])">
<case regex="operation1">
<log level="custom">
<property name="operation" value="operation1"/>
</log>
</case>
<case regex="operation2">
<log level="custom">
<property name="operation" value="operation2"/>
</log>
</case>
<default/>
</switch>
<filter xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" source="local-name(soap:Body/*[1])" regex="postCustomer">
<then>
<log level="custom">
<property name="operation" value="operation1"/>
</log>
</then>
<else>
<log level="custom">
<property name="operation" value="not operation1"/>
</log>
</else>
</filter>