Bueno, al tema. Resulta que tengo este Webservice (he acortado el texto dejando solo las líneas que importantes para lo que pretendo hacer):
Código:
Como se puede ver, el método que pretendo usar se llama grabaExpediente. En principio, tengo puesto esto:<wsdl:definitions targetNamespace="http://services.system.cex"> <wsdl:types> − <schema targetNamespace="http://services.system.cex"> <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> − <complexType name="ArrayOf_xsd_string"> − <complexContent> − <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/> </restriction> </complexContent> </complexType> − <complexType name="DatosExpediente"> − <sequence> <element name="cobd" nillable="true" type="xsd:string"/> <element name="cobe" nillable="true" type="xsd:string"/> <element name="ocup" nillable="true" type="xsd:string"/> <element name="ocupMultiple" nillable="true" type="impl:ArrayOf_xsd_string"/> <element name="ocur" nillable="true" type="xsd:string"/> <element name="valor" nillable="true" type="xsd:string"/> </sequence> </complexType> − <complexType name="ArrayOfDatosExpediente"> − <complexContent> − <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:DatosExpediente[]"/> </restriction> </complexContent> </complexType> − <complexType name="TareasExpediente"> − <sequence> <element name="tareaFin" nillable="true" type="xsd:string"/> <element name="tareaInicio" nillable="true" type="xsd:string"/> </sequence> </complexType> − <complexType name="Expediente"> − <sequence> <element name="cobe" nillable="true" type="xsd:string"/> <element name="datosExpediente" nillable="true" type="impl:ArrayOfDatosExpediente"/> <element name="lista" nillable="true" type="xsd:string"/> <element name="modelo" nillable="true" type="xsd:string"/> <element name="rol" nillable="true" type="xsd:string"/> <element name="sistema" nillable="true" type="xsd:string"/> <element name="tareas" nillable="true" type="impl:TareasExpediente"/> <element name="usuario" nillable="true" type="xsd:string"/> </sequence> </complexType> − ... <wsdl:message name="grabaExpedienteResponse"> <wsdl:part name="grabaExpedienteReturn" type="impl:RespuestaGrabaExpediente"/> </wsdl:message> <wsdl:message name="testRequest"> </wsdl:message> ... <wsdl:message name="grabaExpedienteRequest"> <wsdl:part name="expediente" type="impl:Expediente"/> </wsdl:message> − ... <wsdl:operation name="grabaExpediente" parameterOrder="expediente"> <wsdl:input message="impl:grabaExpedienteRequest" name="grabaExpedienteRequest"/> <wsdl:output message="impl:grabaExpedienteResponse" name="grabaExpedienteResponse"/> </wsdl:operation> − ... <wsdl:input name="grabaExpedienteRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.system.cex" use="encoded"/> </wsdl:input> − <wsdl:output name="grabaExpedienteResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.system.cex" use="encoded"/> </wsdl:output> </wsdl:operation> −
Código:
donde datosExpedientes es una variable que contiene un array cuyos elementos tienen esta estructura://Consumir servicio de "grabaExpediente" $result = $client->call('grabaExpediente', array('expediente' => array( "cobe" => 'E0100000', "datosExpediente" => $datosExpediente, "lista" => '', "modelo" => '', "rol" => '', "sistema" => '', "tareas" => array( "tareaFin" => '', "tareaInicio" => '', ), "usuario" => '', )));
Código:
La información la guardo desde un formulario, ejecuta el WS pero me salta este error:array( "cobd" => '', "cobe" => codigoEquivalente($key), "ocup" => '', "ocupMultiple" => array(), "ocur" => '', "valor" => $value, );
Código:
Le he dado muchas vueltas pero no logro dar con alguna solución y ya estoy desesperado. Alguien, por favor, me podría decir que debería hacer o que está mal? Gracias por vuestra atención. Array ( [faultcode] => soapenv:Server.userException [faultstring] => java.lang.NullPointerException [detail] => Array ( [hostname] => apps1 ) )