Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2018, 07:37
roys1985
 
Fecha de Ingreso: febrero-2011
Mensajes: 100
Antigüedad: 13 años, 3 meses
Puntos: 0
Servicio Web .WSDL

Hola foreanos, tengo el siguiente problema, me enviaron dos archivos para consumir como WebServicio, uno es una extensión XSD y la otra WSDL,

archivo.xsd
archivo.wsdl

he intentado de todas formas encapsular el servicio pero no me ha funcionado, también comentar que el servicio tiene prefijos, namespaces, osea la estructura del XML es esta

Código PHP:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fgp="RUTA_NAMESPACES">
<
soapenv:Body>
<
fgp:inicio>
 <
fgp:cuerpo>
    <
fgp:rut>19</fgp:rut>
    <
fgp:data>ertdddad</fgp:data>
 </
fgp:cuerpo>
</
fgp:inicio>
</
soapenv:Body>
</
soapenv:Envelope
Si invoco el archivo .WSDL del SoapUI puedo consumirlo sin problemas, pero cuando realizo en ecapsulamiento me arroja distintos errores, como SSL, NULO, mala estructura, etc etc. pero de todas formas no he podido, la forma tradicional que realizo es esta

He intentado invocando al método CALL (que siempre realizo) también con serializeEnvelope y send y también pasando parámetros por arreglo y string como estructura XML

setCredentials -> invoco este metodo porque tienen seguridad de transporte

Código PHP:
//Defino clase nusoap
$client = new nusoap_client($endPoint,"wsdl");
//paso credenciales
$client->setCredentials($login,$password'basic');

//Parametros
$param = array("fgp:cuerpo"=>array("fgp:rut"  =>  "19",
                                                        
"fgp:data => "ertdddad"));

//Intento invocación al método 1
$respuesta = $client->call("
inicio",$param);
//Intento invocación al método 2
$respuesta = $client->call("
inicio",$param,"RUTA_NAMESPACES","inicio",false); 
Intento 2

Código PHP:
//Defino clase nusoap
$client = new nusoap_client($endPoint,"wsdl");
//paso credenciales
$client->setCredentials($login,$password'basic');

//Parametros
$strXml='
 <fgp:cuerpo>
    <fgp:rut>19</fgp:rut>
    <fgp:data>ertdddad</fgp:data>
 </fgp:cuerpo>'
;


//Intento invocación al método 1
$dataXml $client->serializeEnvelope($strXml,false,array("fgp"=>"RUTA_NAMESPACES"),$style='rpc',$use='encoded',false);

result $client->send($dataXml ,$endPoint100000100000);

//Intento invocación al método 2
$dataXml $client->serializeEnvelope($strXml);

result $client->send($dataXml ,$endPoint100000100000); 
Ninguno de las formas me ha funcionado, primera vez que consumo un WSDL que los archivos estén en mi maquina, que tengan prefijos obligatorios

He intentado eliminar el WSDL new nusoap_client($endPoint,false) pero no llego fuera de la red, sólo de esta forma funciona


Utilizando

Nusoap v1.64
Php 5.2.9


Gracias si alguien ha realizado esto