我需要将soap服务的每个操作“连接”到rest服务。在wso2-esb中,我用预定义的wsdl定义了一个新的代理服务,到目前为止,我已经发布了该服务,我可以“看到”soap中的操作。
现在我需要定义(我认为)顺序,我的第一个问题是我需要区分op1、op2和op3,因为每个soap操作都到不同的rest服务。
根据客户端调用的操作,需要哪种中介程序来分割请求?
谢谢!

发布于 2014-07-25 08:05:48
这个escenario非常类似于一个“消息路由器”模式,您必须使用SOAP头值进行路由,而在消息内容中没有EIP值。
要获得SOAP操作的名称,您需要获取SOAP头值,下面是一个示例代理:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="proxy_router_by_header"
transports="http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<log level="full"/>
<property name="MY_SOAP_ACTION"
expression="get-property('Action')"
scope="default"
type="STRING"/>
<log level="custom">
<property name="* Action sample1" expression="get-property('MY_SOAP_ACTION')"/>
</log>
<log level="custom">
<property name="* Action sample2" expression="$ctx:MY_SOAP_ACTION"/>
</log>
<filter source="get-property('MY_SOAP_ACTION')" regex=".*mediate.*">
<then>
<log level="custom">
<property name="* Evaluation" value=" inside of filter TRUE"/>
</log>
</then>
<else>
<log level="custom">
<property name="* Evaluation" value=" inside of filter FALSE"/>
</log>
</else>
</filter>
</inSequence>
</target>
<description/>
</proxy>希望这能帮到你。致以问候。
https://stackoverflow.com/questions/24943289
复制相似问题