在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>
答案 0 :(得分:0)
使用http.query.string
入站邮件属性来检测?wsdl
请求。
有关可在入站HTTP消息中找到的可用入站属性的详细信息,请参阅http://www.mulesoft.org/documentation/display/current/HTTP+Transport+Reference#HTTPTransportReference-HTTPProperties。