javac ejb/demo/DemoHome.java javac ejb/demo/Demo.java javac ejb/demo/DemoBean.java
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.txtEsto 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.
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
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.
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/*.serAl 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.serComo puedes ver, no hay nada demasiado especial sobre el fichero ejb-jar.