首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WSO2 ESB如何独立处理soap操作

WSO2 ESB如何独立处理soap操作
EN

Stack Overflow用户
提问于 2014-07-24 20:24:10
回答 1查看 838关注 0票数 1

我需要将soap服务的每个操作“连接”到rest服务。在wso2-esb中,我用预定义的wsdl定义了一个新的代理服务,到目前为止,我已经发布了该服务,我可以“看到”soap中的操作。

现在我需要定义(我认为)顺序,我的第一个问题是我需要区分op1、op2和op3,因为每个soap操作都到不同的rest服务。

根据客户端调用的操作,需要哪种中介程序来分割请求?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-25 08:05:48

这个escenario非常类似于一个“消息路由器”模式,您必须使用SOAP头值进行路由,而在消息内容中没有EIP值。

要获得SOAP操作的名称,您需要获取SOAP头值,下面是一个示例代理:

代码语言:javascript
复制
<?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>

希望这能帮到你。致以问候。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24943289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档