Desarrollo de Aplicaciones Empresariales (Enterprise JavaBeans - EJB)

Capítulo 11: Desarrollo de Aplicaciones Empresariales (Enterprise JavaBeans – EJB)

Compartir

En este capítulo, exploraremos el desarrollo de aplicaciones empresariales en Java utilizando Enterprise JavaBeans (EJB). Aprenderás cómo crear componentes empresariales reutilizables que se ejecutan en un entorno de servidor de aplicaciones.

11.1. Introducción a Enterprise JavaBeans (EJB)

Los Enterprise JavaBeans (EJB) son componentes reutilizables y escalables que se utilizan en aplicaciones empresariales para encapsular la lógica empresarial y proporcionar servicios a través de una arquitectura distribuida.

11.2. Tipos de EJB

Existen tres tipos principales de EJB:

  • EJB de sesión: Representan la lógica de negocio y pueden ser de dos tipos: Stateless (sin estado) o Stateful (con estado).
  • EJB de entidad: Representan objetos de datos persistentes que se relacionan con una tabla de base de datos.
  • EJB de mensaje: Permiten la comunicación asíncrona entre componentes de una aplicación empresarial.

11.3. Creación de un EJB de Sesión

Un EJB de sesión es una clase Java que encapsula la lógica empresarial y se puede acceder de forma remota. Aquí hay un ejemplo de cómo crear un EJB de sesión:

import javax.ejb.Stateless;
import javax.ejb.Remote;

@Stateless
@Remote(EjbInterface.class)
public class EjbBean implements EjbInterface {
    public String saludar(String nombre) {
        return "Hola, " + nombre + " desde el EJB.";
    }
}

11.4. Creación de un Cliente EJB

Puedes crear un cliente que acceda al EJB de sesión de la siguiente manera:

import javax.naming.Context;
import javax.naming.InitialContext;
import ejb.EjbInterface;

public class ClienteEjb {
    public static void main(String[] args) {
        try {
            Context context = new InitialContext();
            EjbInterface ejb = (EjbInterface) context.lookup("java:global/ejb/EjbBean!ejb.EjbInterface");
            String mensaje = ejb.saludar("Usuario");
            System.out.println(mensaje);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

11.5. Ejercicios de Práctica

Ejercicio 11.5.1: Crear un EJB de Sesión para Realizar Cálculos

Desarrolla un EJB de sesión que realice operaciones matemáticas (suma, resta, multiplicación, división) y permita a un cliente realizar cálculos utilizando el EJB.

Ejercicio 11.5.2: Crear un EJB de Entidad para Gestionar Datos de Empleados

Crea un EJB de entidad que gestione los datos de empleados, como nombres, salarios, fechas de ingreso, etc., y permita a un cliente acceder y modificar estos datos.

Resumen del Capítulo

Este capítulo ha introducido el desarrollo de aplicaciones empresariales en Java utilizando Enterprise JavaBeans (EJB). Hemos explorado los tipos de EJB y cómo crear un EJB de sesión y un cliente que acceda a él de forma remota. Los ejercicios proporcionados permiten a los lectores practicar y profundizar en su comprensión del desarrollo de aplicaciones empresariales en Java. Los EJB son esenciales para construir aplicaciones escalables y reutilizables en entornos empresariales.

Respuesta ejercicio 11.5.1:

Para desarrollar un EJB de sesión que realice operaciones matemáticas (suma, resta, multiplicación, división) y permita a un cliente realizar cálculos utilizando el EJB, sigue estos pasos:

Paso 1: Crear el Proyecto EJB

  1. Crea un nuevo proyecto EJB en tu entorno de desarrollo Java EE, como Eclipse o NetBeans.

Paso 2: Crear un EJB de Sesión

2.1. Crea un EJB de sesión llamado CalculadoraBean que proporcionará métodos para realizar operaciones matemáticas.

import javax.ejb.Stateless;

@Stateless
public class CalculadoraBean {
    public int sumar(int a, int b) {
        return a + b;
    }

    public int restar(int a, int b) {
        return a - b;
    }

    public int multiplicar(int a, int b) {
        return a * b;
    }

    public int dividir(int a, int b) {
        if (b != 0) {
            return a / b;
        } else {
            throw new ArithmeticException("División por cero no permitida");
        }
    }
}

Paso 3: Crear un Cliente EJB

3.1. Crea un cliente que acceda al EJB de sesión y realice cálculos utilizando los métodos proporcionados.

import javax.naming.Context;
import javax.naming.InitialContext;

public class ClienteCalculadora {
    public static void main(String[] args) {
        try {
            Context context = new InitialContext();
            CalculadoraBean calculadora = (CalculadoraBean) context.lookup("java:global/ejb/CalculadoraBean!ejb.CalculadoraBean");

            int resultadoSuma = calculadora.sumar(10, 5);
            System.out.println("10 + 5 = " + resultadoSuma);

            int resultadoResta = calculadora.restar(10, 5);
            System.out.println("10 - 5 = " + resultadoResta);

            int resultadoMultiplicacion = calculadora.multiplicar(10, 5);
            System.out.println("10 * 5 = " + resultadoMultiplicacion);

            int resultadoDivision = calculadora.dividir(10, 0);
            System.out.println("10 / 0 = " + resultadoDivision);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Paso 4: Configuración del Despliegue

4.1. Asegúrate de que el EJB de sesión esté configurado adecuadamente en el archivo ejb-jar.xml o utilizando anotaciones si estás utilizando Java EE 6 o versiones posteriores.

Paso 5: Ejecución de la Aplicación

5.1. Ejecuta el cliente y observa cómo realiza operaciones matemáticas utilizando el EJB de sesión.

Resultado Esperado:

El cliente accede al EJB de sesión CalculadoraBean, que proporciona métodos para realizar operaciones matemáticas, incluyendo suma, resta, multiplicación y división. El cliente realiza cálculos utilizando estos métodos y muestra los resultados. Si se intenta una división por cero, se captura y se lanza una excepción.

Este ejercicio muestra cómo desarrollar un EJB de sesión en Java que proporciona funcionalidad de cálculo y cómo acceder a él desde un cliente EJB. Puedes personalizar este ejemplo para incluir más operaciones matemáticas o lógica adicional en el EJB.

Respuesta ejercicio 11.5.2:

Para crear un EJB de entidad que gestione los datos de empleados y permita a un cliente acceder y modificar estos datos, sigue estos pasos:

Paso 1: Crear el Proyecto EJB

  1. Crea un nuevo proyecto EJB en tu entorno de desarrollo Java EE, como Eclipse o NetBeans.


Paso 2: Crear una Clase de Entidad

2.1. Crea una clase de entidad llamada Empleado que represente a los empleados con atributos como nombres, salarios, fechas de ingreso, etc.

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.io.Serializable;
import java.util.Date;

@Entity
public class Empleado implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String nombre;
    private double salario;
    private Date fechaIngreso;

    // Getters y setters
}

Paso 3: Crear un EJB de Sesión para Gestionar Empleados

3.1. Crea un EJB de sesión llamado GestorEmpleados que proporcionará métodos para acceder y gestionar los datos de los empleados.

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class GestorEmpleados {
    @PersistenceContext
    private EntityManager entityManager;

    public Empleado crearEmpleado(String nombre, double salario, Date fechaIngreso) {
        Empleado empleado = new Empleado();
        empleado.setNombre(nombre);
        empleado.setSalario(salario);
        empleado.setFechaIngreso(fechaIngreso);
        entityManager.persist(empleado);
        return empleado;
    }

    public Empleado obtenerEmpleado(Long id) {
        return entityManager.find(Empleado.class, id);
    }

    public Empleado actualizarEmpleado(Empleado empleado) {
        return entityManager.merge(empleado);
    }

    public void eliminarEmpleado(Long id) {
        Empleado empleado = obtenerEmpleado(id);
        entityManager.remove(empleado);
    }
}

Paso 4: Crear un Cliente EJB

4.1. Crea un cliente que acceda al EJB de sesión GestorEmpleados y realice operaciones con los datos de los empleados.

import javax.naming.Context;
import javax.naming.InitialContext;
import ejb.GestorEmpleados;

public class ClienteEmpleados {
    public static void main(String[] args) {
        try {
            Context context = new InitialContext();
            GestorEmpleados gestorEmpleados = (GestorEmpleados) context.lookup("java:global/ejb/GestorEmpleados");

            // Crear un nuevo empleado
            Empleado empleado = gestorEmpleados.crearEmpleado("Juan", 50000, new Date());
            System.out.println("Empleado creado con ID: " + empleado.getId());

            // Obtener y modificar un empleado
            empleado = gestorEmpleados.obtenerEmpleado(empleado.getId());
            empleado.setSalario(55000);
            gestorEmpleados.actualizarEmpleado(empleado);
            System.out.println("Empleado actualizado: " + empleado.getNombre() + ", Salario: " + empleado.getSalario());

            // Eliminar un empleado
            Long empleadoId = empleado.getId();
            gestorEmpleados.eliminarEmpleado(empleadoId);
            System.out.println("Empleado eliminado con ID: " + empleadoId);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Paso 5: Configuración del Despliegue

5.1. Asegúrate de que el EJB de entidad y el EJB de sesión estén configurados adecuadamente en el archivo ejb-jar.xml o utilizando anotaciones si estás utilizando Java EE 6 o versiones posteriores.

Paso 6: Ejecución de la Aplicación

6.1. Ejecuta el cliente y observa cómo se crean, modifican y eliminan registros de empleados a través del EJB de sesión.

Resultado Esperado:

El cliente accede al EJB de sesión GestorEmpleados, que proporciona métodos para crear, obtener, actualizar y eliminar empleados utilizando el EJB de entidad Empleado. El cliente realiza operaciones con los datos de los empleados y muestra los resultados.

Este ejercicio muestra cómo desarrollar un EJB de entidad en Java que gestiona datos de empleados y cómo acceder a él desde un cliente EJB. Puedes personalizar este ejemplo para incluir más atributos de empleado o lógica adicional en el EJB de entidad.


Compartir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *