Integrierbaren Container ausführen
Verwenden Sie diese Task, um einen integrierbaren Container auszuführen. Im integrierbaren Container ausgeführte Anwendungen werden schneller gestartet und haben einen geringeren Speicherbedarf als bei der Ausführung im vollständigen Anwendungsserver. Der Container ist eine ideale Umgebung für das schnelle Entwickeln und Testen von Anwendungen, die letztendlich im Anwendungsserver ausgeführt werden.
Vorbereitende Schritte
Bevor Sie einen integrierbaren Container
ausführen, müssen die folgenden Komponenten vorhanden sein:
- Kopie der Datei
<Stammverzeichnis_des_Anwendungsservers>\runtimes\com.ibm.ws.ejb.embeddableContainer_9.0.jarEinschränkung: Der EJB-Thin-Client com.ibm.ws.ejb.thinclient_9.0.jar und die in die EJB integrierbare JAR-Datei com.ibm.ws.ejb.embeddableContainer_9.0.jar können nicht in demselben Klassenpfad koexistieren.
- Kopie der Datei <Stammverzeichnis_des_Anwendungsservers>\runtimes\endorsed\endorsed_apis_9.0.jar, wenn Sie die Annotation "@Resource" mit dem Attribut "lookup" verwenden
- Mindestens ein EJB-Modul in JAR-Dateien oder Klassenverzeichnissen
- Hauptklasse (main), die den integrierbaren Container erstellt
- Java™ SE Development Kit (JDK) oder Java Runtime Environment (JRE) Version 8.0 oder höher
Informationen zu diesem Vorgang
Der Schlüssel für die Ausführung des integrierbaren Containers ist
der Klassenpfad.
Der Klassenpfad muss alle zuvor aufgelisteten Artefakte enthalten.
Wenn beispielsweise my.pkg.MyMainClass die Hauptklasse ist und Enterprise-Beans
verwendet, die in der Datei MyEJBModule.jar gespeichert sind,
wird die Hauptklasse, die den integrierbaren Container startet, möglicherweise über die folgende
Zeile gestartet.
In diesem Beispiel wird davon ausgegangen, dass sich alle JAR-Dateien und Klassenverzeichnisse im aktuellen
Arbeitsverzeichnis befinden.
- 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
Wenn Sie Eigenschaften für den integrierbaren
Container in einer anderen Textdatei als der Datei "embeddable.properties" im aktuellen
Arbeitsverzeichnis angeben möchten, müssen Sie die Systemeigenschaft "com.ibm.websphere.embeddable.configFileName"
definieren, z. B.:
- 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
Wenn Sie eine Anwendung, die JPA verwendet, im integrierbaren EJB-Container entwickeln,
muss der Klassenpfad den JPA-Thin-Client
com.ibm.ws.jpa-2.1.thinclient_9.0.jar enthalten.
Der JPA-Thin-Client befindet sich unter
\runtimes im Stammverzeichnis des Installationsimage.
- 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
Zum Aktivieren der
Traceerstellung im integrierbaren Container können Sie die Systemeigenschaft "com.ibm.ejs.ras.lite.traceSpecification"
wie für den Server auf einen Tracespezifikationswert setzen.
Standardmäßig wird der Trace in der Standardausgabe ausgegeben, aber Sie können die Ausgabe
umleiten, indem Sie die Systemeigenschaft "com.ibm.ejs.ras.lite.traceFileName" definieren.
Im folgenden Beispiel wird gezeigt, wie Sie beide Systemeigenschaften verwenden:
- 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
Wenn Ihre Beans die Annotation "javax.annotation.Resource" mit dem Attribut
"lookup" verwenden, müssen Sie auch Java Endorsed Standards
Override Mechanism verwenden, um die API "javax.annotation.Resource" zu überschreiben, die im JDK auf Ihrem System
verfügbar ist.
Kopieren Sie die Datei Stammverzeichnis_des_Anwendungsservers\runtimes\endorsed\endorsed_apis_9.0.jar in ein Zielverzeichnis
Ihrer Wahl. Verwenden Sie die Eigenschaft java.endorsed.dirs im Java-Befehl,
um Ihr Verzeichnis anzugeben, das die kopierte JAR-Datei enthält.
Im folgenden Beispiel wird gezeigt, wie Sie die Eigenschaft "java.endorsed.dirs" angeben:
- 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