0

我正在尝试使用选择流控制来路由 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>

这只是我的想法,因为我谷歌了很多次但仍然没有结果。有人请给我一些建议。

4

1 回答 1

1

它不是cxf:proxy-service需要与 HTTP 出站一起使用的。
它应该是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>

希望这可以帮助。

于 2013-11-06T15:25:45.257 回答