sábado, 19 de septiembre de 2009

Usando "ServiceLocator" en aplicación Web (Oracle ADF)

En esta oportunidad expondré de manera muy simple el uso de un patrón básico conocido como "ServiceLocator" a través del cual "ocultaremos" el acceso a través de JNDI hacia el servicio. Para ello lo primero que expondremo será la clase del localizador, la misma que se puede ver en la siguiente figura.






Tomando como base esta clase consideramos que contamos con un EJB desarrollado bajo las siguientes especificaciones (ver listado siguiente).







De acuerdo con el diseño anterior, se presenta el siguienten listado de código para el EJB ProyectosSessionEJB.






Como puede apreciarse, en JNDI se encuentra registrado el EJB bajo el nombre ProyectosSessionEJB y localizado bajo java:comp/env/ejb/ProyectosSessionEJB. Debemos colocar la referencia al EJB dentro del web.xml de la aplicación Web ADF, tal y como se indica a continuación.







Ahora estamos en condiciones de utilizar la clase inicial ServiceLocator desde nuestra aplicación Web ADF de la siguiente forma.






En código anterior, se considera que el localizador de servicios es inyectado cuando se inicia el ciclo de vida de ADF sobre la propiedad del Bean del formulario denominada "serviceLocator". El archivo adf-config.xml deberá tener un contenido similar al siguiente: