我正在尝试使用选择流控制来路由SOAP Web服务,它依赖于有效负载来更改为匹配的Web服务。这是我的流程
<flow name="ProxyServiceFlow1" doc:name="ProxyServiceFlow1">
<http:inbound-endpoint exchange-pattern="request-response"
address="http://localhost:8081/hrManagerServiceProxy" doc:name="HTTP" />
<set-variable variableName="clientType"
value="#[message.inboundProperties['http.query.params']['clientType']]"
doc:name="Set clientType" />
<choice doc:name="Choice">
<when expression="#[clientType == 'unsecure']">
<cxf:proxy-service namespace="http://service.freetalk.viettel.com/"
service="RegisterServiceService" payload="body" wsdlLocation="unsecure.wsdl"
enableMuleSoapHeaders="false" doc:name="SOAP" />
<http:outbound-endpoint exchange-pattern="request-response" method="POST" address="http://localhost:8081/HR/hrManagerService" doc:name="HTTP"/>
</when>
<otherwise>
<cxf:proxy-service namespace="http://service.freetalk.viettel.com/"
service="RegisterServiceService" payload="body" wsdlLocation="unsecure2.wsdl"
enableMuleSoapHeaders="false" doc:name="SOAP" />
<http:outbound-endpoint exchange-pattern="request-response" method="POST" address="http://localhost:8081/HR/hrManagerService" doc:name="HTTP"/>
</otherwise>
</choice>
</flow>
这只是我的想法,因为我谷歌很多次但仍然没有结果。有人请给我一些建议。
答案 0 :(得分:1)
它不是需要与HTTP Outbound一起使用的cxf:proxy-service
它应该是cxf:proxy-client
尝试将cxf:proxy-client
与http:outbound-endpoint一起使用。
<choice doc:name="Choice">
<when expression="#[clientType == 'unsecure']">
<http:outbound-endpoint exchange-pattern="request-response" method="POST" address="http://localhost:8081/HR/hrManagerService" doc:name="HTTP">
<cxf:proxy-client payload="body" enableMuleSoapHeaders="true">
</cxf:proxy-client>
</http:outbound-endpoint>
</when>
<otherwise>
<http:outbound-endpoint exchange-pattern="request-response" method="POST" address="http://localhost:8081/HR/hrManagerService" doc:name="HTTP">
<cxf:proxy-client payload="body" enableMuleSoapHeaders="true">
</cxf:proxy-client>
</http:outbound-endpoint>
</otherwise>
</choice>
希望这有帮助。