【问题标题】:In proxy mediation get-property('To') returns unexpected value在代理中介中 get-property('To') 返回意外值
【发布时间】:2012-11-16 10:02:29
【问题描述】:

我对 WSO2 ESB 中介有一个奇怪的问题。 产品版本:WSO2 ESB 4.5.1

中介代码如下所示:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="CacheWSAPrx" transports="https,http" statistics="disable" trace="enable" startOnLoad="true">
   <target>
  <inSequence>
     <log level="full">
        <property xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" name="WSA_To" expression="get-property('To')"/>
     </log>
     <send>
        <endpoint>
           <address uri="http://localhost:9083/TestCacheWeb/sca/MaketWSSoapExport1"/>
        </endpoint>
     </send>
  </inSequence>
  <outSequence>
     <send>
        <endpoint>
           <default/>
        </endpoint>
     </send>
  </outSequence>
 </target>
 <publishWSDL key="conf:/repository/wsdl/service.wsdl"/>
 <description></description>
 </proxy>

当我尝试使用soapUI 4.0.1 调用此服务时,日志调解器打印出WSA_To 属性值(由get-property('To') 函数填充)是/services/CacheWSAPrx。这对我来说很奇怪和意外,因为通过 soapUI 发送的 SOAP 请求在 To 标头中包含另一个值:

<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:Action>http://eisgkh.ru/maket/ws/Maket.WS2.Service.Action</wsa:Action><wsa:To>http://www.exampleaddr.com</wsa:To></soapenv:Header>

所以,我的问题是:为什么 get-property('To') 返回 /services/CacheWSAPrx 值,我认为它必须返回 http://www.exampleaddr。 com?

【问题讨论】:

    标签: wso2esb ws-addressing


    【解决方案1】:

    没有。如果要获取 http://www.exampleaddr.comget-property 不是必需的表达式。关注http://rajikak.blogspot.com/2010/04/xpath-functions-and-properties-avilable.html。你可能需要像 $header/wsa:To 这样的东西来获得你想要的东西。当使用 get-property 时,它会像我想的那样从 MessageContext 获取一个属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 2020-12-08
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多