2017-03-06 9 views
0

SOAP FaultをAPI ConnectのREST JSONオブジェクトにマップするにはどうすればよいですか?API SOAPFault処理を接続します

私は、例えば、しかし、私は障害体を取得する方法を知っていると私のmessage.bodyでJSONオブジェクトに設定ドント、私のボークコンポーネントで「エラーで停止」チェックでSOAPフォルトを処理しています

答えて

0

この問題を解決する方法を見つけました。

私の問題は、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); 
 
});

関連する問題