2017-03-06 4 views
0

Wie kann ich SOAP Fault dem REST JSON-Objekt in API Connect zuordnen?API Connect SOAPFault-Behandlung

Ich bin Umgang mit SOAP-Fehler per Scheck „auf Fehler Stop“ in meiner Invoke Komponente aber ich weiß nicht, wie Fehler Körper zu bekommen und in einem JSON-Objekt in meinem message.body gesetzt, zum Beispiel

Antwort

0

Ich habe herausgefunden, wie ich dieses Problem lösen kann.

In meinem Fall war mein Problem, dass die Variable Ausgabe der Invoke mir seinen JSON-Körper als eine NodeList XML ausgesetzt, so dass ich keine Informationen davon abrufen konnte.

bekam ich diese Variable und verwandelt sie in XML in einem gatewayscript

var nodeList = apim.getvariable('<responseServiceVariable>.body'); 
 

 
apim.setvariable('message.headers.content-type', 'application/xml') 
 
apim.setvariable('message.body', nodeList);

Danach benutzte ich die XML-to-JSON-Komponente.

Und dann, ich umgewandelt Reaktion mit anderen 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); 
 
});

Verwandte Themen