Exécution d'un conteneur incorporable
Cette tâche vous permet d'exécuter un conteneur incorporable. Les applications qui fonctionnent dans un conteneur incorporable démarrent plus rapidement et ont une empreinte plus réduite que lorsqu'elles fonctionnent dans le serveur d'applications complet. L'utilisation de cet environnement est idéal pour développer et tester rapidement des applications qui, à terme, sont destinées à s'exécuter dans un serveur d'applications.
Avant de commencer
Avant d'exécuter un conteneur incorporable, vous devez disposer des éléments
suivants :
- Un exemplaire du fichier <app_server_root>\runtimes\com.ibm.ws.ejb.embeddableContainer_9.0.jarRestriction : Le client léger d'EJB (Enterprise JavaBeans), com.ibm.ws.ejb.thinclient_9.0.jar, et le fichier JAR (Java™ archive) incorporable d'EJB, com.ibm.ws.ejb.embeddableContainer_9.0.jar, ne peuvent pas coexister dans le même chemin d'accès aux classes.
- Un exemplaire du fichier <app_server_root>\runtimes\endorsed\endorsed_apis_9.0.jar, si vous utilisez l'annotation @Resource avec l'attribut lookup
- Un ou plusieurs modules EJB dans des fichiers JAR ou des répertoires de classes
- Une classe principale qui crée le conteneur incorporable.
- Un JDK Java SE ou un JRE (Java Runtime Environment) version 8.0 ou ultérieure
Pourquoi et quand exécuter cette tâche
Le chemin de classes est l'aspect essentiel de l'exécution du conteneur incorporable. Il doit inclure tous les artefacts énumérés plus haut.
Par exemple, si la classe
principale est my.pkg.MyMainClass et qu'elle utilise des beans enterprise
stockés dans le fichier MyEJBModule.jar, la ligne suivante
peut exécuter la classe principale qui lance le conteneur intégrable. Cet exemple
part du principe que tous les fichiers JAR et les répertoires de classes se trouvent dans le
répertoire de travail en cours.
- 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 vous voulez spécifier les propriétés
du conteneur incorporable dans un fichier texte autre que embeddable.properties, situé dans le répertoire de travail en cours, vous devez indiquer la propriété système com.ibm.websphere.embeddable.configFileName. Par exemple :
- 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
Lorsque vous développez une application qui utilise JPA dans le conteneur d'EJB incorporable, le chemin d'accès aux classes doit inclure le client léger JPA, com.ibm.ws.jpa-2.1.thinclient_9.0.jar.
Le client léger JPA se trouve dans \runtimes, où est situé le répertoire racine de l'image d'installation.
- 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
Pour activer le traçage
dans le conteneur incorporable, vous devez indiquer une valeur de spécification de trace
pour la propriété système com.ibm.ejs.ras.lite.traceSpecification, exactement comme vous le feriez
pour le serveur.
Par défaut, la trace est envoyée au flux de sortie standard (stdout),
mais vous pouvez la rediriger vers un fichier en spécifiant la propriété
système com.ibm.ejs.ras.lite.traceFileName. L'exemple suivant montre comment utiliser les deux
propriétés système :
- 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 vos beans utilisent l'annotation javax.annotation.Resource avec l'attribut de correspondance, vous devez également utiliser le mécanisme Java Endorsed Standards Override Mechanism pour remplacer l'API javax.annotation.Resource disponible dans le JDK que vous utilisez sur votre système. Copiez le fichier app_server_root\runtimes\endorsed\endorsed_apis_9.0.jar dans un répertoire cible de votre choix. Utilisez la propriété java.endorsed.dirs dans la commande Java pour spécifier le répertoire qui contient le fichier JAR copié. L'exemple suivant montre comment spécifier la propriété
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