• Publicidad

Uso de SOAP::Data::ComplexType

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Uso de SOAP::Data::ComplexType

Notapor sirwallo » 2006-07-18 05:45 @281

Hola
Estoy escribiendo un pequeño servicio web, este este servicio debe devolver un tipo de datos complejo definido en wsdl:

<xsd:complexType name="Mensaje_vuelta">
<xsd:element name="resultado" type="xsd:string"/>
<xsd:element name="mensaje_error" type="xsd:string"/>
</xsd:complexType>

El problema es que no se como devolver este tipo de datos desde mi servicio web (creado en perl).
He estado mirando y que para hacer esto se puede utilizar el modulo SOAP::Data::ComplexType pero el problema es que he estado viendo la documentacion de este modulo y no me aclaro de como utilizarlo, no se si lo he dicho es que soy un poco novato en esto de perl.

Un saludo y gracias por anticipado
sirwallo
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2006-07-18 02:54 @162

Publicidad

Notapor explorer » 2006-07-18 06:24 @308

Suponiendo que usas SOAP::Lite, puedes crear datos complejos con objetos SOAP::Data (http://search.cpan.org/dist/SOAP-Lite/l ... PLEX_TYPES)

En tu caso, sería:
Código: Seleccionar todo
SOAP::Data->name (
    'Mensaje_vuelta' => \SOAP::Data->value (
        SOAP::Data->name ( 'resultado' => 'el resultado' ),
        SOAP::Data->name ( 'mensaje_error' => 'el mensaje de error'),
    )
);

Revisa los ejemplos que hay en SOAP::Data.

Actualización: Corregido el error.
Última edición por explorer el 2006-07-19 04:12 @216, editado 2 veces en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor sirwallo » 2006-07-19 02:25 @142

Gracias explorer
Me habia cegado con lo de utilizar el conplex-type y se me habia pasado la posibilidad de usar SOAP::Data y mira que lo estuve mirando, voy a probarlo y ya te cuento y de nuevo muchas gracias por tu rapidez.

Un saludo
sirwallo
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2006-07-18 02:54 @162

Notapor sirwallo » 2006-07-19 03:33 @190

Hola Explorer
He probado el codigo que me enviaster y el mensaje soap que me devuelve con la respuesta es

Código: Seleccionar todo
<Mensaje_vuelta>
            <resultado xsi:type="xsd:string">el resultado</resultado>
            <resultado xsi:type="xsd:string">mensaje_error</resultado>
            <resultado xsi:type="xsd:string">el mensaje de error</resultado>
</Mensaje_vuelta>


y lo que yo estoy intentando que me devuelva es

Código: Seleccionar todo
<Mensaje_vuelta>
   <resultado xsi:type="xsd:string">OK</resultado>
   <mensaje_error xsi:type="xsd:string">no se ha enviado en numero de telefono</mensaje_error>
</Mensaje_vuelta>


Voy a intentar haber si lo consigo ya contare si he tenido suerte
sirwallo
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2006-07-18 02:54 @162

Lo conseguiiiiiiiiiiii

Notapor sirwallo » 2006-07-19 03:52 @203

Bueno pues al final lo he conseguido utilizando SOAP::Data el codigo utilizado es
Código: Seleccionar todo
my $mensaje =SOAP::Data->name('Mensaje_vuelta' => \SOAP::Data->value(SOAP::Data->name('resultado' => '123')->type('string')
      ,SOAP::Data->name('mensaje' => 'eeeeeeeeeee')->type('string')));



y esto me devuelve
Código: Seleccionar todo
<Mensaje_vuelta>
   <resultado xsi:type="xsd:string">123</resultado>
   <mensaje xsi:type="xsd:string">eeeeeeeeeee</mensaje>
</Mensaje_vuelta>
sirwallo
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2006-07-18 02:54 @162

Notapor explorer » 2006-07-19 04:12 @217

Efectivamente, el código estaba mal. Ya lo he cambiado.
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados