【问题标题】:Does Mule CXF proxy service overwrites the soap:address location attribute of wsdlMule CXF代理服务是否覆盖了wsdl的soap:address位置属性
【发布时间】:2013-04-30 01:33:25
【问题描述】:

这就是我的 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 &lt;soap:address location="http://server.com/order"&gt; 中指定什么,这都将被 &lt;http://inbound-endpoint address="${my.service.address}"&gt; 中指定的 ${my.service.address} 值覆盖

如果我在classes 文件夹中签入我的wsdl,它在&lt;soap:address&gt; 元素的location 属性中具有正确的值,但是当尝试从浏览器查看wsdl 时,值被替换为@987654329 的address @

【问题讨论】:

    标签: wsdl mule


    【解决方案1】:

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

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

    【讨论】:

    • CXF 代理的许多未记录的功能:)。感谢您的洞察大卫
    • 嗨@david,在这个类似的设置中,如果有通过https的请求,通过负载均衡器卸载ssl,我们发现返回的wsdl在http协议中有它的服务地址,我们应该如何将此值修改回https?我们正在使用 cxf:proxy 和 http-inbound-endpoint
    • 嘿@JamesJiang - 你应该把这个问题当作一个新问题来问,以便更多地关注它并有更好的机会得到回答。在这个新问题中,不要忘记指定负载均衡器是否在其调度的请求中添加 X-Forwarded-Proto 标头(或等效标头)。
    • 谢谢@DavidDossot,我在这里发了一个问题stackoverflow.com/questions/28823230/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多