过滤在Mule ESB中以Web服务代理模式传递到转换器的有效负载

时间:2014-08-14 18:48:23

标签: web-services proxy mule transformer

在Mule中使用Web服务代理模式时,您可以通过一个或多个转换器传递消息。反正是为了避免传递?例如,在Content-Type上过滤Wsdl获取或其他消息?我的变换器在将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>

1 个答案:

答案 0 :(得分:0)

使用http.query.string入站邮件属性来检测?wsdl请求。

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