Está en la página 1de 24

|||

Manual Generacin y Uso STUBs de


Servicios

Mercantil Seguros C.A.


Gerencia de Ingeniera del Software e Integracin

Gcia. Ingeniera de Software e Integracin

Historial de revisiones del documento


FECHA

VERSIN / RELASE

DESCRIPCIN

AUTOR

26/07/2013

1.0

Versin Inicial

Casto Colina

21/08/2013

1.1

Correcciones

Casto Colina

22/08/2013

1.2

Correcciones

Casto Colina

25/09/2013

1.3

Correcciones

Casto Colina

Historial del registro de cambio del documento


VERSIN / RELASE

CAMBIOS

Documento: Manual Generacin y Uso STUBs de Servicios

RAZN DE CAMBIO

Gcia. Ingeniera de Software e Integracin

INDICE

INDICE ................................................................................................................................................................... 3
1. AMBIENTE.......................................................................................................................................................... 4
2. CREACION DE PROYECTO. .......................................................................................................................... 5
3. CREACIN DEL WS PROXY CLIENT ............................................................................................................. 9
4. CONFIGURACIN SPRING STUB ............................................................................................................... 15
5. DESACOPLAR DE UDDI.JAR (CREACIN DE CLASE PARA OBTENER STUB). ................................... 17
6. CONSIDERACIN CAMBIO STUB GENERADO ...................................................................................... 18
7. DECLARACION E INICIALIZACION DESDE APLICATIVO. ..................................................................... 20
8. CREACIN DE CLIENTE DE PRUEBA ......................................................................................................... 22

Documento: Manual Generacin y Uso STUBs de Servicios

Gcia. Ingeniera de Software e Integracin

1. AMBIENTE

Java JDK 1.6.30

JDeveloper 11.1.2.1.0

Para este manual se usara como ejemplo el servicio llamado ServicioActividadEconomica.

Documento: Manual Generacin y Uso STUBs de Servicios

Gcia. Ingeniera de Software e Integracin

2. INTRODUCCIN.
A la fecha cada vez que se desarrolla un nuevo STUB se debe editar el archivo de configuracin del
componente UDDI.jar lo que lleva a una dependencia cclica. Se requiere desarrollar un mecanismo que
permita cargar el componente STUB en el componente central UDDI durante la primera invocacin del
servicio y a su vez evitar modificaciones en el cdigo del artefacto UDDI cada vez que se agrega un nuevo
STUB.

Documento: Manual Generacin y Uso STUBs de Servicios

Gcia. Ingeniera de Software e Integracin

2. CREACION DE PROYECTO.
Creamos un nuevo proyecto Java

Documento: Manual Generacin y Uso STUBs de Servicios

Gcia. Ingeniera de Software e Integracin

En la siguiente pantalla colocamos:


1. Nombre del proyecto Java con el nombre del Servicio.
2. El directorio donde deseamos colocar nuestro proyecto indicando la ruta del trunk o del branch.
3. Le damos continuar.

En la siguiente pantalla ajustamos el paquete por defecto y le damos Finalizar.

Documento: Manual Generacin y Uso STUBs de Servicios

Gcia. Ingeniera de Software e Integracin

Configuracin las libreras y dependencias.

Las libreras necesarias para generar, compilar y empaquetar nuestro STUB son las siguientes:

Documento: Manual Generacin y Uso STUBs de Servicios

Gcia. Ingeniera de Software e Integracin

3. CREACIN DEL WS PROXY CLIENT


Como indicamos previamente el servicio usado es AdctividadEconomica.

Aqu la informacion de los nodos mas importantes:

Procedemos a crear el STUB.

Documento: Manual Generacin y Uso STUBs de Servicios

Gcia. Ingeniera de Software e Integracin

Quitamos la opcin que nos importara el WSDL y los XSD al proyecto.

Documento: Manual Generacin y Uso STUBs de Servicios

10

Gcia. Ingeniera de Software e Integracin

Eliminamos el paquete de objetos comunes. En caso de haber cambiado el XSD de objetos comunes se
debera replicar el cambio en el componente que corresponde (objetoscomunes.jar)

Documento: Manual Generacin y Uso STUBs de Servicios

11

Gcia. Ingeniera de Software e Integracin

JAXWS por defecto crea una clase para acceder a la interfaz del servicio a travez del puerto y una clase de
cliente prueba. Sabiendo la informacion del ENDPOINT del servicio se consulta en un UDDI no deseamos que
las aplicaciones se comuniquen directamente al servicio desde donde hemos generado el STUB por lo tanto
para evitar un mal uso ELIMINANOS estas clases generadas.

En el caso de que sea un STUB ya existente debemos editar la clase ServicioActividadEconomica_Service y


modificar la operacin getPort para asi colocar el codigo de acceso al UDDI que explicaremos adelante.

Documento: Manual Generacin y Uso STUBs de Servicios

12

Gcia. Ingeniera de Software e Integracin

Compilamos el proyecto para verificar que tenemos todos los objetos que necesitamos.

Procedemos a eliminar el perfil de despliegue creado por defecto y creamos uno nuevo.

Se debe crear como archivo JAR y el nombre debe corresponder al nombre del servicio en minsculas
seguido de la palabra stub (nombreservicio-stub)

Documento: Manual Generacin y Uso STUBs de Servicios

13

Gcia. Ingeniera de Software e Integracin

Luego lo editamos para hacer algunos ajustes.

El siguiente ajuste evita que al momento de empaquetar genere un archivo con las dependencias de otros
componentes dentro.

Documento: Manual Generacin y Uso STUBs de Servicios

14

Gcia. Ingeniera de Software e Integracin

4. CONFIGURACIN SPRING STUB


Observemos en el explorador el WSDL, la seccin service tiene un atributo name que corresponde al nombre
del servicio desplegado.

Para cada STUB generado se WSIMPORT crea una interfaz Java correspondiente a cada servicio y que su
nombre corresponde al observado en el WSDL.

Luego de generado el STUB debemos crear una configuracin de spring que se conecte al UDDI para buscar
datos de conectividad del servicio y nos devuelva una fachada. En este caso la configuracin se debe crear
en resources/spring/applicationContextServicioActividadEconomica.xml. Se hace nfasis en el nombre del
archivo ya que se debe seguir un patrn, el nombre del archivo puede ser cualquiera pero para seguir un
estndar colocamos el nombre del servicio ya que esta configuracin a de ser nica por cada STUB.

Documento: Manual Generacin y Uso STUBs de Servicios

15

Gcia. Ingeniera de Software e Integracin

El archivo debe tener una configuracin como la que se muestra en la siguiente imagen. Se debe observar los
textos subrayados donde se colocan los nombres de los beans de Spring con un patrn de nombre
correspondiente a cada servicio. Luego esta resaltado con un ovalo el nombre cualificado de la interfaz
generada en el paquete del STUB. En caso que se use copiar y pegar es importante cambiar esta lnea luego
manualmente y de cuidar el nombre de paquete y clase corresponda con lo generado.

Documento: Manual Generacin y Uso STUBs de Servicios

16

Gcia. Ingeniera de Software e Integracin

5. DESACOPLAR DE UDDI.JAR (CREACIN DE CLASE PARA OBTENER STUB).


A la fecha para usar un STUB agregbamos una lnea en el appContext del UDDI.jar, la nueva solucin
requiere sea creada una clase en cada STUB la cual es autodescriptiva, debe contener informacin de la ruta
de su appContext y el nombre del objeto spring que representa la instancia del STUB.
Creamos una clase con las siguientes pautas:

1. El nombre de la clase debe estar formado por la palabra StubNombreServicioLookup


2. El paquete debe ser como el defecto que indicamos previamente com.mercantilseguros.xmlns.osb.util
3. En caso de que deseemos verificar la generacin de la instancia del STUB aadimos un Main para
ejecutar una prueba.
Aqu el resultado.

Documento: Manual Generacin y Uso STUBs de Servicios

17

Gcia. Ingeniera de Software e Integracin

Aqu una muestra de cmo debe quedar la clase despus de codificada.


Se observa aqu lo importante es el nombre del objeto STUB que agregamos en el archivo de configuracin
del paso anterior y la ruta de dicho archivo de configuracin.

6. CONSIDERACIN CAMBIO STUB GENERADO


Esta consideracin se debe tomar en cuenta para los STUBS existentes y que son usados por aplicativos en
ambientes de produccin que hacen uso de la clase _Service generada.
Cuando generamos los STUBS se crea la interfaz de servicio con todas las operaciones disponibles descritas en
el WSDL pero adicional se crea una clase xx_Sevice la cual tiene mtodos getxxSOAP para acceder a una
instancia del de la interfaz del servicio. El problema con esta clase es que tiene preestablecida la ruta del
Service End -Point y el WSDL por lo cual debemos modificar este comportamiento para que trabaje con el
UDDI en su lugar.
Tomando como ejemplo el ServicioActividadEconomica.

Documento: Manual Generacin y Uso STUBs de Servicios

18

Gcia. Ingeniera de Software e Integracin

En el caso del servicio y la clase de estudio se debe hacer el siguiente cambio:


1. Se debe marcar la clase como @Deprecated para indicar que es un uso descontinuado.

2. Inicializar variables y comentar bloque static.

Documento: Manual Generacin y Uso STUBs de Servicios

19

Gcia. Ingeniera de Software e Integracin

3. Comentamos la lnea existente para cada mtodo getXXXSOAP


4. Agregamos el cdigo como el que est marcado.

7. DECLARACION E INICIALIZACION DESDE APLICATIVO.


Declaramos una variable del tipo de la interfaz.

Creamos un mtodo en la clase exclusivo para inicializar los stubs.

Documento: Manual Generacin y Uso STUBs de Servicios

20

Gcia. Ingeniera de Software e Integracin

Invocamos el mtodo desde el constructor o cualquiera que fuese el punto de arranque de la aplicacin /
modulo.

Documento: Manual Generacin y Uso STUBs de Servicios

21

Gcia. Ingeniera de Software e Integracin

8. CREACIN DE CLIENTE DE PRUEBA


En caso de crear el Main en la clase com.mercantilseguros.xmlns.osb.util.StubNombreServicioLookup y querer
hacer la prueba de creacin del STUB debemos:
Agregar libreras adicionales a las indicadas en el paso 2. Spring, aopalliance, commons-loggin y commons-ms

Los componentes de Spring usados son los siguientes:

Documento: Manual Generacin y Uso STUBs de Servicios

22

Gcia. Ingeniera de Software e Integracin

Agregar a nuestro Main las siguientes lneas

Durante la ejecucin del mtodo Main veremos algunas indicaciones:


Se carga la configuracin en el contexto global:

Se omiten algunos componentes no encontrados en el classpath:

Se carga el componente solicitado, el UDDI en su primera conexin imprime alguna metadata y por
ultimo vemos el nombre del STUB y el endpoint que devuelve el servicio de UDDI.

Algunas veces durante las pruebas podramos obtener error al intentar ejecutar un STUB probado
previamente, en caso de ser un error asociado a la URL del WSDL como el siguiente caso:

Documento: Manual Generacin y Uso STUBs de Servicios

23

Gcia. Ingeniera de Software e Integracin

Esto generalmente sucede en consecuencia a un conflicto de libreras del JDeveloper, en algunos casos el IDE
aade unas libreras adicionales al CLASSPATH del proyecto.

En este caso removemos las libreras y volvemos a ejecutar.

Documento: Manual Generacin y Uso STUBs de Servicios

24