我对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
答案 0 :(得分:0)
没有。如果您想获得 http://www.exampleaddr.com ,则 get-property 不是必需的表达式。关注http://rajikak.blogspot.com/2010/04/xpath-functions-and-properties-avilable.html。您可能需要 $ header / wsa:To 以获得您想要的内容。当使用 get-property 时,我会从 MessageContext 中获取属性。