En este post nos ocuparemos de como resuelve JDeveloper la capa de negocio. EJB 3.0 es el estándar para resolver esta capa. Se trata de construir los procesos de negocio, que luego serán llamados por la vista, los servicios web, ….
Nos basaremos en el post anterior, donde creamos la capa de persistencia para nuestra pequeña aplicación.
En el diagrama EJB que creamos anteriormente, basta con arrastrar de la paleta el Session Bean, para que se inicie el wizard para crear el bean:
Creamos el bean lebrijo.services.DepartamentsServiceBean, solo seleccionaremos los métodos de la entidad Departaments. En el que se crearán los métodos: persist, merge, remove y getDepartamentsFindAll(). Nos creará dos interfaces: local y remota, por si ejecutamos el servicio en la misma o distinta máquina virtual.
JDeveloper implementa un patrón fachada con las acciones CRUD (Create-Read-Update-Delete) sobre las entidades.
Cuando creemos el lebrijo.services.EmployeesServiceBean se creará además el método getEmployeesFindByName, ya que creamos la query en el artículo anterior en la entidad. Para añadir más métodos basados en EJB-QL que vayan surgiendo podemos hacerlo mediante menú contextual >Edit Session Facade…
Para mantenerlo simple estoy guardando las entidades en un subpaquete de servicios llamado services.interfaces.
Podemos probar el servicio con el botón derecho sobre el EmployeesServiceBean > Create Sample Java Client, en el que crearemos lebrijo.test.EmployeesServiceClient:
Al método findByName le ponemos el parámetro “%P” para encontrar todos los empleados que comienzan con P.
for (Employees employees : (List<iployees>)employeesService.getEmployeesFindByName( "P%" )) { printEmployees(employees); } </iployees> |
Al hacer Run con el menú contextual sobre el EmployeesServiceBean, se arrancará Weblogic desplegando la aplicación. Y haciendo ‘Run’ con EmployeesServiceClient, se ejecutará la prueba: mostrará en el log del servidor de Weblogic los empleados que empiezan por P: