Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/01/2010, 10:16
Avatar de Yamilskate
Yamilskate
 
Fecha de Ingreso: septiembre-2006
Mensajes: 94
Antigüedad: 17 años, 7 meses
Puntos: 0
Consumir webservice con objetos como parametros con Nusoap.

Amigos tengo un Webservice:

Código PHP:
  <?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions targetNamespace="http://business.icavi.serviciosExternos.avaluos.infonavit.org.mx" xmlns:impl="http://business.icavi.serviciosExternos.avaluos.infonavit.org.mx" xmlns:intf="http://business.icavi.serviciosExternos.avaluos.infonavit.org.mx" xmlns:tns2="http://icavi.vo.business.avaluos.infonavit.org.mx" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:types>
- <schema elementFormDefault="qualified" targetNamespace="http://icavi.vo.business.avaluos.infonavit.org.mx" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://business.icavi.serviciosExternos.avaluos.infonavit.org.mx" xmlns:intf="http://business.icavi.serviciosExternos.avaluos.infonavit.org.mx" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <complexType name="UsuarioWSVO">
- <sequence>
  <element name="contrasenia" nillable="true" type="xsd:string" /> 
  <element name="idusuario" nillable="true" type="xsd:string" /> 
  </sequence>
  </complexType>
- <complexType name="AvaluoWSVO">
- <sequence>
  <element name="acometidatelefonico" type="xsd:int" /> 
  <element name="altitud" type="xsd:int" /> 
  <element name="banquetavalor" nillable="true" type="xsd:string" /> 
   </sequence>
  </complexType>
- <complexType name="RespuestaWSVO">
- <sequence>
  <element name="fecha" nillable="true" type="xsd:string" /> 
  <element name="resultado" nillable="true" type="xsd:string" /> 
  <element name="tipomensaje" nillable="true" type="xsd:string" /> 
  </sequence>
  </complexType>
  </schema>
- <schema elementFormDefault="qualified" targetNamespace="http://business.icavi.serviciosExternos.avaluos.infonavit.org.mx" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://business.icavi.serviciosExternos.avaluos.infonavit.org.mx" xmlns:intf="http://business.icavi.serviciosExternos.avaluos.infonavit.org.mx" xmlns:tns2="http://icavi.vo.business.avaluos.infonavit.org.mx" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <import namespace="http://icavi.vo.business.avaluos.infonavit.org.mx" /> 
- <element name="recibirAvaluoPaquete">
- <complexType>
- <sequence>
  <element name="usuario" nillable="true" type="tns2:UsuarioWSVO" /> 
  <element name="avaluo" nillable="true" type="tns2:AvaluoWSVO" /> 
  </sequence>
  </complexType>
  </element>
- <element name="recibirAvaluoPaqueteResponse">
- <complexType>
- <sequence>
  <element name="recibirAvaluoPaqueteReturn" nillable="true" type="tns2:RespuestaWSVO" /> 
  </sequence>
  </complexType>
  </element>
- <wsdl:message name="recibirAvaluoPaqueteRequest">
  <wsdl:part element="impl:recibirAvaluoPaquete" name="parameters" /> 
  </wsdl:message>
- <wsdl:message name="recibirAvaluoPaqueteResponse">
  <wsdl:part element="impl:recibirAvaluoPaqueteResponse" name="parameters" /> 
  </wsdl:message>
- <wsdl:portType name="ReceptorAvaluos">
- <wsdl:operation name="recibirAvaluoPaquete">
  <wsdl:input message="impl:recibirAvaluoPaqueteRequest" name="recibirAvaluoPaqueteRequest" /> 
  <wsdl:output message="impl:recibirAvaluoPaqueteResponse" name="recibirAvaluoPaqueteResponse" /> 
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="ReceptorAvaluosSoapBinding" type="impl:ReceptorAvaluos">
  <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> 
- <wsdl:operation name="recibirAvaluoPaquete">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input name="recibirAvaluoPaqueteRequest">
  <wsdlsoap:body use="literal" /> 
  </wsdl:input>
- <wsdl:output name="recibirAvaluoPaqueteResponse">
  <wsdlsoap:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:service name="ReceptorAvaluosService">
- <wsdl:port binding="impl:ReceptorAvaluosSoapBinding" name="ReceptorAvaluos">
  <wsdlsoap:address location="http://201.134.132.147:80/avaluosQASAP/services/ReceptorAvaluos" /> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>
Y necesito consumir el metodo recibirAvaluoPaquete que supuestamente contiene 2 parametros que son objetos (con sus respectivos datos), entonces lo que hize con php fue crear mis 2 objetos, algo asi:

Código PHP:
class UsuarioWSVO
    var 
$idusuario  "MIUSUARIO";
    var 
$contrasenia  "MIPASS";


class 
AvaluoWSVO
    var 
$acometidatelefonico"a";
    var 
$altitud"b";
    var 
$banquetavalor "c";


$usuario = new UsuarioWSVO();
$avaluo = new AvaluoWSVO(); 
Y luego envio esto:

Código PHP:
if($err $client->recibirAvaluoPaquete($usuario,$avaluo))
                {
                        die(
$err);
                } 
Y el mensaje de error que obtengo es el siguiente:

SoapFault exception: [Server.generalException] java.lang.NullPointerException in /home/yamil/www/sga/lib/lib_send_avaluo.php:725 Stack trace: #0 [internal function]: SoapClient->__call('recibirAvaluoPa...', Array) #1 /home/yamil/www/sga/lib/lib_send_avaluo.php(725): SoapClient->recibirAvaluoPaquete(Object(UsuarioWSVO), Object(AvaluoWSVO)) #2 {main}


Espero me puedan ayudar cuanto antes con este código es urgente y ya no se q mas puede estar mal!!
(Lo único que necesito saber y si estoy invocando mal al metodo o estoy creando mal mis objetos o que es lo que sucede???)


pd: (El webservice publicado arriba esta un poco reducido al original para no hacerlos tantas bolas)

Última edición por Yamilskate; 15/01/2010 a las 10:21