2016-05-10 92 views
7

Sto tentando di accedere a un API Web utilizzando il modulo node-soap, ma ogni volta che eseguo il codice viene visualizzato l'errore "Elemento radice inatteso di WSDL o includi "Nodejs La chiamata aap di sapone restituisce "Un elemento radice inatteso di WSDL o include"

var soap = require('soap'); 
var xml2js = require('xml2js'); 

var url = 'https://webservice.servcei.com/LoginXML'; 
var params = { 
    Username:'webservice', 
    Password:'Test123' 
}; 
soap.createClient(url,params,function(err,client){ 
    console.log(err); 
}); 
+0

[domanda relativa] (http://stackoverflow.com/questions/30139878/how-to-consume-wcf-in-node-js) – stuartd

+0

ho controllato questa domanda, ma non riusciva a capire nulla, anche io sono non si sa se la risposta data viene restituita dal servizio web o dal modulo soap? –

+0

utilizzare uno strumento di acquisizione di rete [come Fiddler o Wireshark] (http://stackoverflow.com/questions/4263116/wireshark-vs-firebug-vs-fiddler-pros-and-cons) per a) vedere esattamente quello che si sta inviando e b) vedere esattamente cosa si sta ricevendo. – stuartd

risposta

4

La variabile" url "deve puntare a WSDL, non al servizio Web stesso. Per convenzione WSDL deve essere situato sulla seguente URL: https://webservice.servcei.com/LoginXML?wsdl

così fanno seguente:

  1. Verificare se è possibile accedere al WSDL sul seguente URL: https://webservice.servcei.com/LoginXML?wsdl. In caso contrario, individuare la posizione corretta del file WSDL
  2. Verificare che l'host del servizio sia specificato in WSDL xml. Se non si utilizza il parametro "endpoint" di createClient per puntare al vero servizio SOAP.