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-serviceHTTP アウトバウンドと一緒に使用する必要があるのは ではありません。
そのはず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 に答える