Recursos de desarrollo EJB 2.x

Este tema describe los recursos y herramientas de desarrollo utilizados habitualmente en el desarrollo de EJB, versión 2.x.

módulos EJB

Los módulos EJB se visualizan en la vista Explorador de proyectos de la perspectiva Java™ EE y corresponden con proyectos EJB.

Un módulo EJB se utiliza para ensamblar uno o varios beans de empresa en una sola unidad desplegable. Un módulo EJB se desarrolla en un proyecto EJB y puede exportarse como archivo JAR EJB autónomo o puede combinarse con otros módulos EJB o Web dentro de una aplicación de empresa. Un archivo JAR de EJB utiliza el formato de un archivo de archivado Java estándar. Un módulo EJB contiene lo siguiente:

  • Uno o varios beans de empresa y sus archivos .class y .java asociados.
  • Archivos gráficos y otros, dependiendo de las necesidades del bean de empresa.
  • Un descriptor de despliegue. El tipo de archivo del descriptor de despliegue es XML (Extensible Markup Language). Este archivo declara el contenido del módulo EJB, define la estructura de los beans en el módulo y describe cómo deben utilizarse los beans en tiempo de ejecución.
  • Un archivo META-INF en el directorio META-INF. El archivo de manifiesto puede contener una entrada de vía de acceso de clases, con referencias a otros archivos JAR o módulos EJB de una aplicación de empresa J2EE. Define las dependencias externas del módulo.

Un módulo EJB se instala y ejecuta en un contenedor EJB.

Un bean de empresa es un componente Java que se puede combinar con otros recursos para crear aplicaciones de cliente/servidor distribuidas.

Nota: si opta por crear un archivo JAR de cliente EJB para el módulo EJB, las clases de interfaz de cliente de los beans de empresa no se incluirán en el archivo JAR de EJB, sino que se incluirán en el archivo JAR de cliente de EJB.
proyectos EJB

En el entorno de trabajo, puede crear y se mantener recursos para las aplicaciones de empresa en proyectos. Un proyecto EJB es un módulo lógico que permite organizar los beans de empresa.

El entorno de trabajo da soporte a proyectos EJB 1.1, EJB 2.0 y EJB 2.1. El nivel de especificación J2EE de un proyecto EAR contenedor debe establecerse en J2EE 1.3 o posterior para proyectos EJB 2.0, y en J2EE 1.4 para proyectos EJB 2.1. En un proyecto EJB 1.1, sólo podrá crear beans EJB 1.1.

Un proyecto EJB es un proyecto Java especializado. Igual que un proyecto Java, un proyecto EJB debe tener una o varias carpetas de origen para contener los archivos de origen y salida del proyecto. Por omisión, la carpeta fuente se denomina ejbModule, pero puede cambiar ese nombre al crear el proyecto o nuevas carpetas fuente. Al publicar o desplegar el proyecto, el contenido de la carpeta o carpetas se suma.

No puede utilizar el proyecto EJB como carpeta fuente, si lo hace, provocará errores. Asimismo, aunque puede tener más de una carpeta fuente en el proyecto, sólo una de ellas puede contener la carpeta META-INF en la que residen los archivos MANIFEST.MF y descriptor de despliegue.

Nota: si opta por crear un archivo JAR de cliente de EJB para el módulo EJB, las clases de interfaz de cliente de los beans de empresa no se incluirán en el proyecto EJB, sino en un proyecto JAR de cliente EJB distinto. Los proyectos JAR de cliente de EJB se visualizan en el Explorador de proyectos como proyectos Java en el nodo Otros proyectos.
Proyectos de cliente EJB

Las herramientas de EJB dan soporte a la creación de proyectos JAR de cliente EJB para módulos EJB. Un proyecto JAR de cliente EJB contiene toda las clases de interfaz que un programa cliente necesita para utilizar las vistas de cliente de los beans de empresa contenidos en el proyecto EJB. Al crear un proyecto de cliente EJB para un proyecto EJB, se crea un nuevo proyecto Java que se añade al espacio de trabajo. El proyecto de cliente EJB se añade como archivo JAR de utilidad de proyecto a cada módulo al que pertenece el proyecto EJB.

Por omisión, al utilizar el asistente para crear un proyecto EJB, también se crea un proyecto de cliente EJB. Sin embargo, puede deseleccionar esta opción en el asistente.

Sugerencia: también puede añadir el proyecto de cliente EJB a otra aplicación de empresa que no incluya el proyecto EJB como módulo. Con ello se asegurará de que el archivo JAR de cliente EJB se exporte y empaquete con el archivo EAR cuando se exporte la aplicación.
Beans de empresa

Un bean de empresa es un componente Java que se puede combinar con otros recursos para crear aplicaciones de cliente/servidor distribuidas.

Hay tres tipos de beans de empresa: beans de entidad, beans de sesión y beans controlados por mensaje. Generalmente, todos los tipos de beans se utilizan conjuntamente dentro de una aplicación de empresa.

Beans de entidad
Los beans de entidad almacenan datos permanentes. Los beans de entidad con persistencia gestionada por contenedor (CMP) requieren conexiones de base de datos. Los beans de entidad con persistencia gestionada por bean gestionan datos permanentes de la forma definida en el código del bean. Ésta puede incluir la escritura en bases de datos o en archivos XML, por ejemplo.
Beans de sesión
Los beans de sesión no requieren acceso a bases de datos, aunque pueden obtenerlo indirectamente (si es necesario) accediendo a beans de entidad. Los beans de sesión también pueden obtener acceso directo a bases de datos (y a otros recursos) mediante la utilización de referencias de recurso.
Beans controlados por mensaje
Los beans controlados por mensaje son un tipo especial de bean de empresa que actúan como consumidores de mensajes en el sistema de mensajes JMS. Como los consumidores de mensajes JMS estándar, los beans controlados por mensaje ejecutan lógica comercial basada en el contenido de mensajes. En varios aspectos, la creación y asignación dinámica de instancias de bean controlado por mensaje imita el comportamiento de los beans de empresa de sesión sin estado. Sin embargo, los beans controlados por mensaje difieren de los beans de empresa de sesión sin estado (y de otros tipos de beans de empresa) en un par de aspectos:
  • Los beans controlados por mensaje procesan varios mensajes JMS de forma asíncrona, en lugar de procesar una secuencia serializada de llamadas de método.
  • Los beans controlados por mensaje no tienen interfaz inicial ni remota y, por tanto, los clientes externos o internos no pueden acceder directamente a ellos.
Descriptores de despliegue

Un descriptor de despliegue contiene datos de configuración que el entorno de ejecución utiliza para una aplicación. Un descriptor de despliegue puede incluir información acerca de lo siguiente:

  • La estructura y contenido (bean de empresa, por ejemplo) de la aplicación.
  • Referencias a dependencias internas y externas. Por ejemplo, un bean de empresa de un módulo EJB puede requerir otro bean de empresa que no esté empaquetado en el mismo módulo.
  • Referencias a objetos de fábrica de recursos, como por ejemplo URLs u orígenes de datos JDBC.
  • Roles de seguridad que el contenedor utilizar al implementar el control de acceso necesario para la aplicación.
  • Información transaccional acerca del modo (y de si tiene posibilidad de hacerlo) en que el contenedor debe gestionar las transacciones para la aplicación.

Los descriptores de despliegue son archivos XML empaquetados con los archivos de la aplicación en un archivo de archivado Java. Un descriptor de despliegue EJB se denomina ejb-jar.xml y se encuentra en la carpeta META-INF de un proyecto EJB. Una aplicación J2EE contiene un archivo descriptor de despliegue a nivel de aplicación, que gobierna la aplicación en conjunto. También contiene varios descriptores de despliegue a nivel de componente, uno para cada módulo de la aplicación.