Ejecución de un contenedor incorporable
Utilice esta tarea para ejecutar un contenedor incorporable. Las aplicaciones que se ejecutan en el contenedor incorporable se inician más rápidamente y requieren menos espacio que cuando se ejecutan en el servidor de aplicaciones completo. Es un entorno ideal para desarrollar y probar rápidamente aplicaciones que finalmente se podrían ejecutar en el servidor de aplicaciones.
Antes de empezar
Antes de ejecutar un contenedor incorporable, debe tener listos los
siguientes elementos:
- Una copia de
<raíz_servidor_apl>\runtimes\com.ibm.ws.ejb.embeddableContainer_9.0.jarRestricción: El cliente ligero de Enterprise JavaBeans (EJB), com.ibm.ws.ejb.thinclient_9.0.jar, y el archivo de archivado Java™ (JAR) del EJB que se puede incorporar, com.ibm.ws.ejb.embeddableContainer_9.0.jar, no pueden coexistir en la misma vía de acceso de clase.
- Una copia del archivo <raíz_servidor_apl>\runtimes\endorsed\endorsed_apis_9.0.jar, si está utilizando la anotación @Resource con el atributo de búsqueda
- Uno o varios módulos EJB en los archivos JAR o directorios de clase
- Una clase principal que cree el contenedor incorporable
- Un Java SE Development Kit (JDK) o un Java Runtime Environment (JRE) Versión 8.0 o posteriores
Acerca de esta tarea
La clave para ejecutar el contenedor incorporable es la classpath. Ésta debe incluir todos los artefactos enumerados anteriormente. Por ejemplo, si la clase principal
es my.pkg.MyMainClass, y utiliza enterprise beans que están almacenados en el archivo
MyEJBModule.jar, la línea siguiente podría ejecutar la clase principal que inicia el
contenedor incorporable. En este ejemplo se
presupone que todos los archivos JAR y directorios de clase están en el
directorio de trabajo actual.
- Windows:
C:\test> java -cp .;com.ibm.ws.ejb.embeddableContainer_9.0.jar my.pkg.MyMainClass
- UNIX:
[test]$ java -cp .:com.ibm.ws.ejb.embeddableContainer_9.0.jar:MyEJBModule.jar my.pkg.MyMainClass
Si desea especificar propiedades de contenedor incorporable en un archivo de texto que no sea embeddable.properties en el directorio de trabajo actual, debe especificar la propiedad del sistema com.ibm.websphere.embeddable.configFileName; por ejemplo:
- Windows:
C:\test> java -Dcom.ibm.websphere.embeddable.configFileName="C:\test\my-config.properties" -cp .;com.ibm.ws.ejb.embeddableContainer_9.0.jar;MyEJBModule.jar my.pkg.MyMainClass
- UNIX:
[test]$ java -Dcom.ibm.websphere.embeddable.configFileName="/home/myusername/test/my-config.properties" -cp .:com.ibm.ws.ejb.embeddableContainer_9.0.jar:MyEJBModule.jar my.pkg.MyMainClass
Al desarrollar una aplicación que utiliza JPA en el
contenedor de EJB que se puede incorporar, la vía de acceso
de clase debe incluir el cliente ligero JPA, com.ibm.ws.jpa-2.1.thinclient_9.0.jar.
El cliente ligero JPA se encuentra en \runtimes donde se encuentra el directorio raíz de la imagen de instalación.
- Windows:
C:\test> java -cp .;com.ibm.ws.ejb.embeddableContainer_9.0.jar;%WAS_HOME%\runtimes \com.ibm.ws.jpa-2.1.thinclient_9.0.jar;MyEJBModule.jar my.pkg.MyMainClass
- UNIX:
[test]$ java -cp .:com.ibm.ws.ejb.embeddableContainer_9.0.jar:${WAS_HOME}/runtimes /com.ibm.ws.jpa-2.1.thinclient_9.0.jar:MyEJBModule.jar my.pkg.MyMainClass


- Windows:
C:\test> java -javaagent:%WAS_HOME%\runtimes\com.ibm.ws.jpa-2.1.thinclient_9.0.jar -cp .;com.ibm.ws.ejb.embeddableContainer_9.0.jar;MyEJBModule.jar my.pkg.MyMainClass
- UNIX:
[test]$ java -javaagent:${WAS_HOME}/runtimes/com.ibm.ws.jpa-2.1.thinclient_9.0.jar -cp .:com.ibm.ws.ejb.embeddableContainer_9.0.jar:MyEJBModule.jar my.pkg.MyMainClass
Para habilitar el rastreo en el contenedor incorporable, puede especificar la propiedad del sistema com.ibm.ejs.ras.lite.traceSpecification con un valor de especificación de rastreo como el que especificaría para el servidor. De forma predeterminada, el rastreo se imprime en la salida estándar, pero puede redirigir la salida especificando la propiedad del sistema com.ibm.ejs.ras.lite.traceFileName. En el ejemplo siguiente se muestra cómo puede utilizar ambas propiedades del sistema:
- Windows:
C:\test> java -Dcom.ibm.ejs.ras.lite.traceSpecification=EJBContainer=all:MetaData=all -Dcom.ibm.ejs.ras.lite.traceFileName=trace.log -cp .;com.ibm.ws.ejb.embeddableContainer_9.0.jar;MyEJBModule.jar my.pkg.MyMainClass
- UNIX:
[test]$ java -Dcom.ibm.ejs.ras.lite.traceSpecification=EJBContainer=all:MetaData=all -Dcom.ibm.ejs.ras.lite.traceFileName=trace.log -cp .:com.ibm.ws.ejb.embeddableContainer_9.0.jar:MyEJBModule.jar my.pkg.MyMainClass
Si los beans utilizan la anotación javax.annotation.Resource con el atributo lookup, también debe utilizar Java Endorsed Standards
Override Mechanism para alterar la API javax.annotation.Resource que está disponible en el JDK del sistema. Copie
el archivo
raíz_servidor_apl\runtimes\endorsed\endorsed_apis_9.0.jar
en un directorio de destino de su elección. Utilice la propiedad java.endorsed.dirs en el mandato Java para especificar el directorio que contiene el archivo JAR copiado. El ejemplo siguiente muestra cómo puede especificar la propiedad
java.endorsed.dirs:
- Windows:
C:\test> java -Djava.endorsed.dirs="myTargetDirectory" -cp .;com.ibm.ws.ejb.embeddableContainer_9.0.jar;MyEJBModule.jar my.pkg.MyMainClass
- UNIX:
[test]$ java -Djava.endorsed.dirs="myTargetDirectory" -cp .:com.ibm.ws.ejb.embeddableContainer_9.0.jar:MyEJBModule.jar my.pkg.MyMainClass