Mostrando entradas con la etiqueta SERVICE CONTROL. Mostrar todas las entradas
Mostrando entradas con la etiqueta SERVICE CONTROL. Mostrar todas las entradas

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Í