0

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

1 回答 1

0

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

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

于 2014-08-15T02:27:33.053 回答