domingo, 26 de octubre de 2008

[Colaboración de Jaime González de Zárate - SIC S.A.] Invocación a servicio SOAP externo a Meta4

Mi compañero Jaime González de Zárate de SIC S.A. (http://www.sicsa.es/), me ha enviado la información necesaria para crear un post que creo que os resultará muy interesante. Se trata de poder invocar Web Services a través de SOAP.

El objetivo de este post es mostrar cómo la aplicación Meta4 también puede funcionar como un cliente SOAP que realiza peticiones a un determinado servicio SOAP y traspasa los datos requeridos a los Meta4Objects ya definidos.

Meta4 como cliente SOAP tiene algunas restricciones, ya que no es capaz de consumir todos los servicios SOAP que existen descritos por un WSDL cualquiera. Esto es así, porque Meta4 no puede convertir una estructura de datos arbitraria en un Meta4Object, solamente soporta un subconjunto de tipos.

Meta4 como cliente SOAP es capaz de interpretar los tipos básicos más significativos de SOAP http://www.w3.org/tr/xmlschema-0/ , así como un subconjunto de tipos complejos.

Los tipos complejos que Meta4 puede consumir deben ser estructuras mixtas o vectores de una dimensión de estructuras mixtas. Se define estructura mixta como un objeto compuesto por tipos básicos, estructuras simples (compuestas únicamente por tipos básicos) u otras estructuras mixtas.

Esto significa que Meta4 no es capaz de consumir matrices multidimensionales o vectores de tipos básicos.

Con respecto a los ficheros, Meta4 no los consume. Pero existe una excepción: si los ficheros provienen de una implementación concreta (Axis DataHandler), Meta4 los consume sin ningún problema, tanto de entrada como de salida.

Principalmente hay dos tipos de servicios:
  • rpc/encoded
  • document/literal

Por el momento Meta4 no consume servicios Document/Literal.

Para realizar el ejemplo que se desarrollará en este documento utilizaremos una arquitectura que consta de los siguientes componentes atendiendo a la Guía de Certificaciones:

  • Contenedor Web: Tomcat 5.0.28
  • Motor SOAP: AXIS 1.1
  • Java Virtual Machine: j2sdk1.4.2

Además utilizaremos un “TCPMonitor” (ver punto 4 del documento) que es una utilidad que escucha en un puerto y monitoriza todo lo que se reciba y se mande por él, y lo redirecciona automáticamente al puerto correcto.

Como el documento es largo en vez de añadirlo como Post lo adjunto. Link

Como podreis ver no resulta tan sencillo como aparece en la documentación de Meta4. Si alguien lo ha conseguido de otra forma y quiere compartirla estaré encantado de escribirlo en el blog... así como conseguir que sea Meta4 PeopleNet quien provea de estos Web Services (SOAP).

Espero que sea útil.
SEGURO QUE LO ES... Muchas gracias Jaime!!

2 comentarios:

Anónimo dijo...

Hola buenas tardes, donde puedo conseguir el documento al que se hace referencia? Busco un ejemplo de utilización de web services con meta4 PeopleNet 7

Anónimo dijo...

Hola,
¿alguien tiene un manual para implantar los servicios SOAP en tecnología PeopleNet 8, JDK 1.7 y Tomcat 5 o tomcat 7?

Gracias.