Mule CXF代理服务是否会覆盖wsdl的soap:address location属性

时间:2013-04-29 17:19:07

标签: wsdl mule

这是我的Mule 3.3.0流程的一部分:

<flow name="soapService">
        <http:inbound-endpoint address="${my.service.address}" exchange-pattern="request-response">
            <cxf:proxy-service wsdlLocation="classpath:order.wsdl" namespace="http://abc.com/services/order" service="OrderService"
                enableMuleSoapHeaders="false">
            </cxf:proxy-service>
        </http:inbound-endpoint>
...

</flow>

无论我在order.wsdl <soap:address location="http://server.com/order">中指定的是什么,都会被${my.service.address}

中指定的<http://inbound-endpoint address="${my.service.address}">值覆盖

如果我在classes文件夹中检入我的wsdl,它在location元素的<soap:address>属性中具有正确的值,但是当尝试从浏览器中查看wsdl时,值将替换为address

<http:inbound-endpoint>

1 个答案:

答案 0 :(得分:2)

这是一个不是错误的功能:)

因为您正在使用CXF代理,所以希望将SOAP地址重写为入站HTTP端点地址,以便使用Mule公开的WSDL的客户端将通过代理发送SOAP请求,而不是直接到最初在WSDL中的任何SOAP地址。