如何使用WSO2在代理中通过调用方法进行路由?

时间:2015-06-09 06:01:45

标签: web-services routes wso2 wso2esb esb

我想通过调用方法名称在代理中路由进程。我必须从Web服务中获得只允许的方法。例如,webService1有一个(),b(),c()方法。 webService2有d(),e()方法。我想为客户端只获取a(),b()和d()方法。所以,我必须得到请求方法来做到这一点。我可以通过像这样的肥皂动作属性来做到这一点:



         <property name="MY_SOAP_ACTION"
                   expression="get-property('Action')"
                   scope="default"
                   type="STRING"/>
         <switch source="get-property('MY_SOAP_ACTION')">
            <case regex="add">
               <send>
                  <endpoint>
                     <address uri="http://localhost:1111/MockService1?wsdl"/>
                  </endpoint>
               </send>
            </case>
            <case regex="sgrsControlInspection">
               <send>
                  <endpoint>
                     <address uri="http://localhost:2222/MockService2?wsdl"/>
                  </endpoint>
               </send>
            </case>
&#13;
&#13;
&#13;

但是,网络服务属于另一个基础,这些方法没有肥皂动作注释。那么如果没有动作属性我怎么能这样做呢?

1 个答案:

答案 0 :(得分:1)

SOAP操作产生要在端点调用的方法。它不需要指定注释。你做的方式似乎是正确的。另请从结束点删除'?wsdl'部分。您的终点配置应更正如下。

<address uri="http://localhost:1111/MockService1"/>

其他配置似乎很好。