【问题标题】:Filter payload that passes to the transformer in Webservice Proxy pattern in Mule ESB在 Mule ESB 中的 Webservice 代理模式中过滤传递给转换器的有效负载
【发布时间】:2014-08-14 18:48:23
【问题描述】:

在 Mule 中使用 Web 服务代理模式时,您可以通过 1 个或多个转换器传递消息。例如,是否有避免传递 ?wsdl 获取或其他在 Content-Type 上过滤的消息?我的转换器在将 XML 有效负载传递给 Web 服务之前对其进行了操作,但我发现我的 wsdl 调用也正在由转换器处理并且失败了。

我检查了我的转换器代码,但这似乎不是解决此问题的正确方法。

if(message.getOriginalPayload().toString().endsWith("wsdl")||!(xmlString.startsWith("<") && xmlString.endsWith(">"))){return message; }

代理配置:

<pattern:web-service-proxy name="SR-Proxy" 
    doc:name="SR-Proxy" 
    transformer-refs="enrichPayloadWithSFSession" 
    wsdlFile="service/SR_Webservice.wsdl">
<http:inbound-endpoint exchange-pattern="request-response" host="${hostname}" port="${http.port}" path="service/SRProxy" doc:name="HTTP" />
<https:outbound-endpoint exchange-pattern="request-response" address="${sfdc.wsUrl}SR_Webservice" />
</pattern:web-service-proxy>

【问题讨论】:

    标签: web-services proxy mule transformer


    【解决方案1】:

    使用http.query.string 入站消息属性检测?wsdl 请求。

    有关可在入站 HTTP 消息中找到的可用入站属性的更多信息,请参阅 http://www.mulesoft.org/documentation/display/current/HTTP+Transport+Reference#HTTPTransportReference-HTTPProperties

    【讨论】:

    • 一如既往地感谢大卫!我感谢您的所有帮助。那么验证变压器内部的消息是正确的方法吗?使用代理模式时,没有办法在消息传递到转换器之前对其进行过滤?
    • 使用转换器来验证消息是不正确的。在您的情况下,正确的方法需要使用 flow 构建代理并在其中使用 filter。不过,这是更多的工作......变压器可以做到:)
    猜你喜欢
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多