Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/03/2004, 16:37
Troyano
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 8 meses
Puntos: 0
pasar array a funcion desde perl a webservice en php

Hola estoy haciendo unas pruebas para mi tesis.

El problema es el siguente:

Tengo un Web Service hecho en PHP y quiero acceder a el desde PERL.

Con tipos de datos sencillos como enteros y cadenas no tengo problemas , pero cuando quiero pasar un array desde perl a una funcion del Web Service no hallo como.

Estoy usando Nusoap en php y SOAP::Lite en Perl.

La pega es que no hayo como hacerle para que se modifique el mensaje soap que genera el Perl.

digamos tengo un cliente hecho en php y me genera la siguiente parte:

<SOAP-ENV:Body>
- <tns:sumarArrayEntero>
- <vector xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:int[3]">
<item xsi:type="xsd:int">9</item>
<item xsi:type="xsd:int">9</item>
<item xsi:type="xsd:int">9</item>
</vector>
</tns:sumarArrayEntero>
</SOAP-ENV:Body>

pero en Perl me genera:

<SOAP-ENV:Body>
<sumarArrayEntero xmlns="">
<vector xsi:type="SOAP-ENC:int">9</vector>
<vector xsi:type="SOAP-ENC:int">9</vector>
<vector xsi:type="SOAP-ENC:int">9</vector>
</sumarArrayEntero>
</SOAP-ENV:Body>

como ven se supone que le estoy mandando un array de tres elementos de tipo int pero en lugar de eso perl interpreta que estoy mandando 3 parametros de tipo int.

La invocacion que hago con perl es:

$invoca = $soap->sumarArrayEntero(SOAP::Data->name(vector=> (9,9))->type('SOAP-ENC:int'));

¿alguien sabe como puedo codificar/modificar el soap para que se haga como quiero?