domingo, 21 de abril de 2013

CREACIÓN DE SERVICIO WEB CON ‘SERVICE CONTROL’ BASADO EN ‘JAX-RPC’

Hola en esta oportunidad brindaré el siguiente tutorial que mostrará el manejo de SERVICE CONTROLs relacionado a servicios Web con JAX-RPC, desplegados en Servidores de Aplicación Oracle WebLogic 10 y sobre una IDE “Oracle WorkShop  10.4 for Weblogic”.

El escenario a simular es el desarrollo de un WebService que internamente contendrá un flujo para completar la información requerida consumiendo dos servicios web de tipo Proxy.

Estos servicios Proxy son los siguientes y serán iniciados vía un Mock Services con SoapUI:

- http://localhost:8088/mockObtenerDatosBinding?wsdl
- http://localhost:8088/mockObtenerTecnologiaBinding?wsdl

PASOS
:


1. DESPLEGAR SERVICIOS EXTERNOS:

Iniciamos los Mock Services del SoapUI:

•    ObtenerDatosBinding_PROXY.wsdl   (WSDL)
•    obtenerDatos_lib.xsd  (XSD)
•    ObtenerTecnologiaBinding_PROXY.wsdl    (WSDL)
•    obtenerTecnologia_lib.xsd   (XSD)

Con los WS externos ya iniciados procedemos a crear el WS project.


2.  CREAR UN WEB SERVICE PROJECT EN WORKSHOP:

- Abrir la IDE: Oracle workshop for Web Logic.
- Hacer  clic derecho en el explorador de proyectos y seleccionar: 
File/New/Other/Web Service/WebService Project

- Ingresar el nombre del proyecto: DummyExceptionWS, luego en las de la pantalla seleccionar   ‘Annotated Web Service Facets JAX-RPC’  y haga click en el botón siguiente, siguiente y luego Finalizar.
- Vamos a Crear a WebService en modo: Top-Down (Teniendo el .WSDL ya creado), ya que es una buena práctica. Para ello sobre el .WSDL del damos:
click derecho/WebServices/Generate Web Service

Asignamos el nombre del paquete donde se creará la clase pública del  WS: pe.com.dummyException.ws

Se creará la clase:  ControlExceptionPortTypeImpl tendrá una interfaz GRÁFICA donde se mostraran los métodos de dicho WS.

Las librerías COMPARTIDAS (Shared), solo deberán apreciarse 2:  beehide-control y weblogic-controls

Así mismo dentro de:  DummyExceptionWS\WebContect\WEB-INF\lib, se creará un .jar que contendrá  las clases no públicas y no modificables del     WebService creado.


3.  CREANDO UN WEB SERVICE CONTROL:
 En el sourceFolder src creamos 2 paquetes:

 pe.com.dummyException.proxy 
(Dentro se ubicaran los .WSDL y .XSD de los proxy externos)   
 pe.com.dummyException.control  (Dentro de ubicaran los SERVICE CONTROL de cada proxy externo)
 Ahora ubicamos los .WSDL y .XSD de los PROXY externos dentro del paquete: pe.com.dummyException.proxy    

 En base a cada .wsdl de los WS externos, generamos las clases SERVICE CONTROL: Click derecho sobre el:  wsdl/WebService/Generate Service Control
- Asignamos los Types de tipo JAX-RPC:
- Se creará dentro de la carpeta .lib un .jar:
  ObtenerDatosBinding_PROXY_JAXRPC.jar


Dentro del sourceFolder: pe.com.dummyException.control, creamos la clase controladora:  ObtenerDatosControl.java


"Este paso hacerlo para cada WS Externo que se tenga".
       
 4. CREANDO LA CLASE HELPER:
Crearemos una clase Helper de ayuda que contendrá los setters y getters del objeto de control de servicios.

Para ello creamos un SourceFolder llamado:  pe.com.dummyException.helper

Las clases las llamaremos:
•    ObtenerDatosHelper
•    ObtenerTecnologiaHelper



5.  IMPLEMENTAR EL WEB SERVICE:
Con los WebService Externos (Proxy), ya mapeados, con sus Service Control y Hepers ya creados, procedemos a implementar el flujo del ServicioWeb:

Ingresamos a la clase: ControlExceptionPortTypeImpl.java y al método:  controlException y dentro ingresamos toda la lógica:


6.  DESPLEGAMOS EL WEB SERVICE:
- Generamos el .EAR llamado: DummyExceptionWS_EAR.ear
- Ingresamos a la CONSOLA ADMINISTRATICA Weblogic:

http://192.168.1.33:7001/console/login/LoginForm.jsp
-    USER:             weblogic
-    PASSWORD:  weblogic

Ingresamos en el árbol en: Deployments, pulsamos Instalar y buscamos la ruta del .EAR, luego Next:

- Pulsamos Next:
- Pulsamos Finish:
- Ingresamos dentro del .EAR y entramos al Web Service:
- Ingresamos a la pestaña:  Testing:

Mostramos la URL del WS creado es la siguiente:

http://192.168.1.33:7001/DummyExceptionWS/ControlExceptionPortTypeImpl?wsdl



7.    PROBAR EL WEB SERVICE DESPLEGADO:
       Ingresamos los dos datos requeridos y ejecutamos.

       Finalmente, mostramos los LOGs respectivos de los PROXYs consumidos:
--------------- DENTRO DEL MÉTODO: [controlException] - [INICIO] ---------------
vIdTransaccion: [5214952]
vTelefono: [41816133]
--------------- DENTRO DEL MÉTODO: [getObtenerTecnologiaPROXY] - [INICIO] ---------------
URL: [http://localhost:8088/mockObtenerTecnologiaBinding?wsdl]
TIMEOUT: [10000]
XML 'ObtenerTecnologia' [REQUEST]: [externalcompany.com.pe.bean.obtenertecnologiaws.ObtenerTecnologiaInput@ed301f]
XML 'ObtenerTecnologia' [RESPONSE]: [externalcompany.com.pe.bean.obtenertecnologiaws.ObtenerTecnologiaInput@ed301f]
--------------- DENTRO DEL MÉTODO: [getObtenerTecnologiaPROXY] - [FIN] ---------------

--------------- DENTRO DEL MÉTODO: [getObtenerDatosPROXY] - [INICIO] ---------------
URL: [http://localhost:8088/mockObtenerDatosBinding?wsdl]
TIMEOUT: [10000]
XML 'ObtenerDatos' [REQUEST]: [externalcompany.com.pe.bean.obtenerdatosws.ObtenerDatosInput@109efc2]
XML 'ObtenerDatos' [RESPONSE]: [externalcompany.com.pe.bean.obtenerdatosws.ObtenerDatosOutput@10aef1d]
--------------- DENTRO DEL MÉTODO: [getObtenerDatosPROXY] - [FIN] ---------------
--------------- DENTRO DEL MÉTODO: [controlException] - [FIN] ---------------


- Para descargar el tutorial completo paso a paso dar click: AQUÍ
- Para descargar las fuentes del dummy dar click: AQUÍ


No hay comentarios: