私は比較的新しい WSO2 ESB です。別の REST API を介して WSO2 ESB でホストされている GET パラメータを使用して REST Web サービスを呼び出そうとしています。
これは単純なWeb サービス (SampleREST)で、このサービスを直接呼び出すと、XML 形式のウェルカム メッセージで応答します。以下に示すように、ブラウザで正しい応答を確認できます
<Message xmlns="http://ws.apache.org/ns/synapse">WelcomeRanjan</Message>
ここで、別の REST Web サービス (InvokeSampleRest) を作成し、次にパラメーター化された GET を使用して SampleREST Web サービスを呼び出します。Invoke WebService Clientは、以下に示すように、メディエーター xml タグおよびその他の不正な形式のタグ内にラップされた XML 応答を返します。
<mediate><<Message xmlns>"http://ws.apache.org/ns/synapse">WelcomeRanjan</Message></<Message xmlns></mediate>
これがSampleREST APIの私のコードです
<?xml version="1.0" encoding="UTF-8"?>
<api xmlns="http://ws.apache.org/ns/synapse" name="SampleREST" context="/SampleRest" hostname="10.203.245.47">
<resource methods="GET" uri-template="/{str1}">
<inSequence>
<header name="To" action="remove"/>
<property name="RESPONSE" value="true" scope="default" type="STRING"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<payloadFactory>
<format>
<Message>$1</Message>
</format>
<args>
<arg expression="get-property('uri.var.str1')"/>
</args>
</payloadFactory>
<log level="full" separator=",">
<property name="sequence" value="*** Got Request ***"/>
</log>
<send/>
</inSequence>
<outSequence/>
<faultSequence/>
</resource>
</api>
InvokeSampleREST コードのコードは次のとおりです (ここから SampleREST サービスを呼び出しています)。
<?xml version="1.0" encoding="UTF-8"?>
<api xmlns="http://ws.apache.org/ns/synapse" name="InvokeSampleREST" context="/InvokeSampleREST" hostname="10.203.245.47">
<resource methods="GET" uri-template="/{str1}">
<inSequence>
<log level="full" separator=","/>
<property name="REST_URL_POSTFIX" expression="fn:concat('/Welcome',get-property('uri.var.str1'))" scope="axis2" type="STRING"/>
<log level="full">
<property name="sequence" value="****Message Sent *** "/>
</log>
<send>
<endpoint>
<address uri="http://10.203.245.47:8280/SampleRest/"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<log level="full" separator=",">
<property name="out" value="** Ouput of Rest call ***"/>
</log>
<property name="ContentType" value="application/xml" scope="axis2" type="STRING"/>
<send/>
</outSequence>
<faultSequence/>
</resource>
</api>
どんな助けにも感謝します。ありがとう、ランジャン