JavaBeans Enterprise

Paso 5: Crear el Fichero ejb-jar

Una de las grandes ventajas de los JavaBeans Enterprise es la habilidad de empaquetar y distribuir la lógica del lado del servidor de la misma forma portable que los componentes GUI. En este paso los ficheros fuente procedentes de los pasos anteriores son compilados y empaquetados en un fichero ejb-jar. Completando los siguientes pasos produciremos el fichero Demo.jar ejb-jar, que estará listo para el despliegue o instalación en el Contenedor de JavaBeans Enterprise.
  1. Compilar los ficheros .java
  2. Crea el Descriptor de Desarrollo
  3. Asegurarnos de que tenemos todas las piezas
  4. Crear el fichero ejb-jar

1. Compilar los ficheros .java

Ejecutamos javac sobre los ficheros que acabamos de crear, es decir, los interfaces remoto y home, y el propio bean JavaBeans Enterprise.
  javac ejb/demo/DemoHome.java
  javac ejb/demo/Demo.java
  javac ejb/demo/DemoBean.java

2. Crer el Descriptor de Desarrollo

Nota: Desarrollo es el término en JavaBeans Enterprise para instalar los componentes JavaBeans dentro de un contenedor JavaBeans Enterprise.

El papel del descriptor de desarrollo es permitir que el desarrollador del Bean personalice muchas de las propiedades del Bean antes de desplegarlo. El descriptor de desarrollo se describe en la especificación de JavaBeans Enterprise (sección 15.2) como un ejemplar de javax.ejb.deployment.SessionDescriptor o javax.ejb.deployment.EntityDescriptor. En el ejemplo DemoBean, es un ejemplar de javax.ejb.deployment.SessionDescriptor. Abajo hay un ejemplo del fichero de texto de entrada a las utilidades de WebLogic que genera el ejemplar serializado de este descriptor de desarrollo.

Observa que la metodología para crear el descritor de desarrollo no está especificada, por eso las herramientas usadas para desplegar los JavaBeans Enterprise podrían aparecer y actuar de forma diferente unos de otros, sin afectar a las propias habilidades del propio bean muti-plataforma.

Este ejemplo continúa con la creacción de DeploymentDescriptor con las herramientas de WebLogic. La implementación del servidor de Bea WebLogic ofrece versiones para la línea de comandos y GUI. Por eso para desplegar el JavaBean Enterprise usando las herramientas de la línea de comandos, envíamos estos comandos:

java weblogic.ejb.utils.DDCreator -dir ejb/demo 
ejb/demo DeploymentDescriptor.txt
Esto creará DemoBeanDD.ser en el directorio ejb/demo.

Un ejemplo del fichero de texto DeploymentDescriptor.txt como entrada para las herramientas de Bea WebLogic: (fuente):

(SessionDescriptor 
; This file must start with SessionDescriptor or 
; EntityDescriptor
  
; Indicate the name which the bean will be bound 
; into the JNDI name as 
beanHomeName                    demo.DemoHome 

; The enterprise Java Bean class (see step 4)
enterpriseBeanClassName         ejb.demo.DemoBean
  
homeInterfaceClassName          ejb.demo.DemoHome
; The home interface implemented by a class 
; generated by the container provided tools 
; see step 3
 
remoteInterfaceClassName        ejb.demo.Demo
; See step 2

isReentrant                     false 
; Always false for session beans 

stateManagementType             STATELESS_SESSION
; Either STATELESS_SESSION or STATEFUL_SESSION.
; DemoBean is a stateless session bean

sessionTimeout                  5
                                ; seconds

(controlDescriptors
; This section decides the run-time properties when 
; a method is called. The DEFAULT sub-section applies 
; to all methods, but can be overridden on a per-method 
; basis, similar to the "accessControlEntries" above.
  (DEFAULT
     isolationLevel           TRANSACTION_SERIALIZABLE

     transactionAttribute     TX_REQUIRED


     runAsMode                CLIENT_IDENTITY
  )
  ; end isolationLevel

)
; end controlDescriptors

(environmentProperties

  maxBeansInFreePool          100

)
; end environmentProperties
)
; end SessionDescriptor
Nota: Este ejemplo es para el servidor BEA Weblogic que usa punto y coma (;) para líneas de comentario.

3. Crear el Manifiesto

El manifiesto lo genera automáticamente la utilidad jar, pero tomará una plantilla, por eso crear un fichero de texto (por ejemplo, ejb/demo/manifest.txt) con los siguientes contenidos. Puedes referirte a la sección sobre el empaquetado del Bean para ver como se usa este fichero de texto.

Para una descripción del fichero de manifiesto, puedes ver la Sección 15,3 de la Espcificación de JavaBeans Enterprise.

    Name: ejb/demo/DemoBeanDD.ser
    Enterprise-Bean: True

4. Asegurarnos de que Tenemos todas las Piezas

Aquí están las piezas que el desarrollador y proveedor de JavaBeans Enterprise necesita suministrar para crear un fichero ejb-jar válido, es decir, el bean JavaBean Enterprise:

El proveedor de Bean JavaBeans Enterprise es responsable de poner todas estas clases dentro del fichero ejb-jar, pero se espera que la mayoría de los proveedores de contenedores y servidores proporcionen herramietnas para hacer este empaquetado y ensamblaje.


5. Crear el Fichero ejb-jar

Para el ejemplo juntamos todas las piezas para crear un fichero jar llamando Demo.jar. Se espera que las futuras herramietnas hagan el empaquetado y la generación del fichero ejb-jar mucho más sencillas. Podemos imaginar un ayudante que nos guie y que chequee las dependencias.

Para crear el fichero ejb-jar Demo.jar para el ejemplo, podemos asumir que las piezas del fichero jar están para un directorio llamado ejb. Simplemente creamos un fichero jar con la estructura de este directorio

Notas: Usamos la bandera m para empaquetar y el fichero ejb/demo/manifest.txt como una plantilla para el manifiesto. No es necesario poner el fichero manifest.txt dentro del fichero jar.

jar cvfm Demo.jar ejb/demo/manifest.txt ejb/demo/*.class \
ejb/demo/*.ser
Al inspeccionar el fichero Demo.jar deberiamos ver una salida similar a esta:
  jar tf Demo.jar

  META-INF/MANIFEST.MF
  ejb/demo/Demo.class
  ejb/demo/DemoBean.class
  ejb/demo/DemoHome.class
  ejb/demo/DemoBeanDD.ser
Como puedes ver, no hay nada demasiado especial sobre el fichero ejb-jar.

Ozito