在 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>