Foros del Web » Programando para Internet » PHP »

Error NUSOAP

Estas en el tema de Error NUSOAP en el foro de PHP en Foros del Web. Hola amigos, despues de pelearme dias enteros intentando devolver un array de datos en php utilizando NUSOAP me doy por vencido. la unica manera que ...
  #1 (permalink)  
Antiguo 30/07/2013, 04:32
 
Fecha de Ingreso: junio-2004
Ubicación: ORENSE
Mensajes: 258
Antigüedad: 19 años, 10 meses
Puntos: 0
Error NUSOAP

Hola amigos,

despues de pelearme dias enteros intentando devolver un array de datos en php utilizando NUSOAP me doy por vencido. la unica manera que he podido hacer para devolverlo es serializando los datos y luego desserializandolos.
No se cual puede ser el problema, pero me estaba dando todo el tiempo que no se podia serializar el resultado en la libreria NUSOAP, por eso decidi serializarlo yo, y en vez de devolver estructuras de datos complejas devolver siempre un string, pero no me termina de convencer.
Cual es el problema de no poder obtener arrays en NUSOAP?
Tengo todo el codigo exactamente igual que en los manuales pero no funciona.
Por lo que he podido depurar el erro me sucede en el fichero nusoap.php en el metodo "serializeType" cuando intentaq serializar un array asociativo.

Mi objeto a devolver es de este tipo: (esto es del lado servidor)

function obtenerNombres() {
$result = array();
$result [] = array('nombre' => 'Manuel');
$result [] = array('nombre' => 'Pepe');
$result [] = array('nombre' => 'Antonio');

return $result;
}

$server->wsdl->addComplexType(
'nombreWS',
'complexType',
'struct',
'all',
'',
array('nombre'=>array('name'=>'nombre','type'=>'xs d:string')));

$server->wsdl->addComplexType(
'nombresWS',
'complexType',
'array',
'',
'http://schemas.xmlsoap.org/soap/encoding/:Array',
array(),
array(array('ref'=>'http://schemas.xmlsoap.org/soap/encoding/:arrayType','wsdl:arrayType'=>'tns:nombreWS[]')),
'tns:nombreWS');

$server->register('obtenerNombres',
array(),
array('return'=>'tns:nombresWS'),
'urn:'.$ns,
'urn:'.$ns.'#obtenerNombres',
'rpc',
'encoded',
'obtener el nombre');

Al intentar serializar el resultado en el fichero nusoap.php da error en el siguiente bloque de codigo. El erorr que salta es "Array to string conversion in " en la linea 6132.

foreach($value as $k => $v) {
$this->debug("serializing array element: $k, $v of type: $typeDef[arrayType]");
//if (strpos($typeDef['arrayType'], ':') ) {
if (!in_array($typeDef['arrayType'],$this->typemap['http://www.w3.org/2001/XMLSchema'])) {
$contents .= $this->serializeType('item', $typeDef['arrayType'], $v, $use);
} else {
$contents .= $this->serialize_val($v, 'item', $typeDef['arrayType'], null, $this->XMLSchemaVersion, false, $use);
}
}

Al ser un array de arrays mis datos devueltos, al hacer aqui el foreach da error al acceder a la variable $v ya que es un array pero parece que aqui se espera un string o un tipo basico.

Es un error de la libreria de nusoap?
__________________
Inmuebles de Galicia:www.inmueblevirtual.net
Compartir piso en Galicia:www.inmueblevirtual.net/foro

Última edición por bananas; 30/07/2013 a las 04:58

Etiquetas: nusoap
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:44.