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.