0
SOAP FaultをAPI ConnectのREST JSONオブジェクトにマップするにはどうすればよいですか?API SOAPFault処理を接続します
私は、例えば、しかし、私は障害体を取得する方法を知っていると私のmessage.bodyでJSONオブジェクトに設定ドント、私のボークコンポーネントで「エラーで停止」チェックでSOAPフォルトを処理しています
SOAP FaultをAPI ConnectのREST JSONオブジェクトにマップするにはどうすればよいですか?API SOAPFault処理を接続します
私は、例えば、しかし、私は障害体を取得する方法を知っていると私のmessage.bodyでJSONオブジェクトに設定ドント、私のボークコンポーネントで「エラーで停止」チェックでSOAPフォルトを処理しています
この問題を解決する方法を見つけました。
私の問題は、invokeの変数出力が私のJSON本体をNodeList XMLとして公開していたため、これに関する情報を取得できませんでした。私は、この変数を持って、gatewayscriptその後
var nodeList = apim.getvariable('<responseServiceVariable>.body');
apim.setvariable('message.headers.content-type', 'application/xml')
apim.setvariable('message.body', nodeList);
でそれをXMLに変換し
、私はXMLからJSONコンポーネントを使用していました。他のgatewayscriptと
そして、私は変換応答
apim.readInputAsJSON(function (error, json) {
if (error) {}
var jsonString = JSON.stringify(json)
.replace(/\$/g,'value');
var jsonReplaced = JSON.parse(jsonString);
var envelope = jsonReplaced['s:Envelope'];
var body = envelope['s:Body'];
var fault = body['s:Fault'];
var faultstring = fault['faultstring'];
var moreInformation = faultstring['value'];
var httpMessage = "My httpMessage"
var error = {"httpCode": 400, "httpMessage": httpMessage, "moreInformation": moreInformation}
apim.setvariable('message.headers.content-type', 'application/json')
apim.setvariable('message.status.code', 400);
apim.setvariable('message.body', error);
});