lunes, 27 de febrero de 2012

INTEGRACIÓN: SPRING 3 + MYBATIS 3 + JAXWS 2.1.3 + MAVEN

En esta oportunidad postearé sobre una muy Buena integración basada en 3 FRAMEWORKs de últimos y conocidos:

- - SPRING 3 = Manejo de sesiones, factory, services.
- - MYBATIS 3.0.5 = Persistencia y Mapping.
- - JAXWS 2.1.3 = Servicio Web.

Adicionalmente, para la construcción del proyecto nos apoyaremos en MAVEN, para la generación de LOGs usaremos log4j y la base de datos esta en ORACLE 11g.

El Dummy preparado para ver el efecto de la integración es un WebService que tiene exponer datos de USUARIO para la consulta respectiva. Este WebService lo creo en base a una lógica de tipo TOP DOWN, osea generar el Servicio Web en base a un WSDL ya creado. Ese WSDL lo cree a mano en base a los estándares para WSDL y XSD existentes.







Las OPERACIONES soportadas por el WebService son:

1. consultaUsuarioForma_01:
INPUT:
Primitivos: codigo, dni
OUTPUT: Cadena concatenada con datos de usuario filtrado.

2. consultaUsuarioForma_02:
INPUT:
Primitivos: codigo, dni
OUTPUT: Objeto Usuario ya cargado y filtrado.

3. consultaUsuarioForma_03:
INPUT:
Objeto Usuario seteado.
OUTPUT: Objeto Usuario ya cargado y filtrado.

4. consultaUsuarioForma_04:
INPUT:
Objeto Usuario seteado.
OUTPUT: Lista de Objetos Usuario.


Lo bueno es que el JAXWS te brinda una mayor facilidad para el manejo de objetos y lista de objetos embebidos en dicho WebService que otros Framework como AXIS 1 y 2.

Descripción detallada del DUMMY:

- DummyWS\src\main\webapp\wsdl\DummyWS.wsdl : Interfaz en base a la cual se ha generado el proyecto J2EE.

- DummyWS\pom.xml: Archivo de configuracion de MAVEN. Aquí se declaran las DEPENDENCIAS, PLUGINs, etc.

- DummyWS\src\main\resources\pe\com\javaman\dummy\conexion\jdbc.properties: Archivo de configuración de los parámetros del Motor de Datos ORACLE.

- DummyWS\src\main\resources\pe\com\javaman\dummy\conexion\mybatis-config.xml: Archivo de configuración de MYBATIS. Aquí se configura los Alias a los objetos mapeados y las rutas respectivas de dichos objetos.

- DummyWS\src\main\resources\pe\com\javaman\dummy\mapping\Usuario.xml: Archivo de Mapping MYBATIS en base al Alias definidos y los parámetros de la tabla, Query o Procedure de base de datos.

- DummyWS\src\main\resources\Spring\applicationContext.xml: Spring aquí matriculamos los otros archivos de configuración manejados por Spring.

- DummyWS\src\main\resources\Spring\applicationDatasource.xml: Aquí amarramos la conexión a BD para que sea soportada por Spring.

- DummyWS\src\main\resources\Spring\applicationEntityBean.xml: Aquí matriculamos los objetos (Beans), que serán controlados por Spring.

- DummyWS\src\main\resources\Spring\applicationService.xml: Aquí matriculamos Servicios, Daos, Factory, Template, etc. Este es el Archivo de configuración más importante a mi parecer y donde usualmente aparecen los errores al no configurarlo bien.

- DummyWS\src\main\resources\log4j.properties: Archivo de configuración de LOG4J. Aquí definimos los niveles de salida en archive para INFO, DEBUG, ERROR.
- DummyWS\src\main\resources\Script_SQL.txt: String de creación de BD y objetos.

- DummyWS\src\main\java\pe\com\java\org\dummyws\DummySOAPService.java: Clase publica principal donde se definen las operaciones del WebService.

- DummyWS\src\main\java\pe\com\java\org\dummyws\service\UsuarioService.java: Clase Service donde se definen las operaciones del WebService.

- DummyWS\src\main\java\pe\com\java\org\dummyws\service\impl\UsuarioServiceImpl.java: Clase donde se implementa la clase UsuarioService.java.

- DummyWS\src\main\java\pe\com\java\org\dummyws\dao\UsuarioDao.java: Clase DAO donde se define la implementación de las operaciones de WebService.

- DummyWS\src\main\java\pe\com\java\org\dummyws\dao\impl\UsuarioDaoImpl.java: Clase DAO que implementa la clase UsuarioDao.java. Aquí se accede a la persistencia por medio de MYBATIS.

Para poder probar dicho Dummy es requerido manejar la IDE: Spring Suite v2.5 o un Eclipse Helios con el Plugin de MAVEN .


Para mayor detalle descargar el Dummy completo pulsar: Aquí

No hay comentarios: