Eine Anwendung greift auf die entsprechende ferne Session-Bean
über die Home-Schnittstelle der Bean zu.
Anlass und Zeitpunkt für die Ausführung dieser Task
Die Session-Bean kann die BusinessFlowManager-Session-Bean für Prozessanwendungen
oder die HumanTaskManager-Session-Bean für Taskanwendungen sein.
Erforderliche Schritte für diese Task
- Fügen Sie einen Verweis auf die ferne Session-Bean zum Deskriptor für die
Anwendungsimplementierung hinzu. Fügen Sie den Verweis einer der folgenden Dateien hinzu:
- Der Datei application-client.xml für eine J2EE-Clientanwendung (Java 2
Platform, Enterprise Edition)
- Der Datei web.xml für eine Webanwendung
- Der Datei ejb-jar.xml für eine EJB-Anwendung (EJB = Enterprise JavaBeans)
Im folgenden Beispiel wird der Verweis auf die ferne Home-Schnittstelle für
Prozessanwendungen gezeigt:
<ejb-ref>
<ejb-ref-name>ejb/BusinessFlowManagerHome</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.ibm.bpe.api.BusinessFlowManagerHome</home>
<remote>com.ibm.bpe.api.BusinessFlowManager</remote>
</ejb-ref>
Im folgenden Beispiel wird der Verweis auf die
ferne Home-Schnittstelle für Taskanwendungen gezeigt:
<ejb-ref>
<ejb-ref-name>ejb/HumanTaskManagerHome</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.ibm.task.api.HumanTaskManagerHome</home>
<remote>com.ibm.task.api.HumanTaskManager</remote>
</ejb-ref>
Wenn Sie mit WebSphere Integration Developer den EJB-Verweis
dem Implementierungsdeskriptor hinzufügen, wird die Bindung für den EJB-Verweis beim
Implementieren der Anwendung automatisch erstellt. Weitere Informationen zum Hinzufügen
von EJB-Verweisen enthält die Dokumentation von WebSphere Integration Developer.
- Fügen Sie die generierten Elemente in Ihr Anwendungspaket ein.
Wenn
Ihre Anwendung auf einer anderen Java Virtual Machine (JVM) ausgeführt wird als diejenige,
auf der die Anwendung BPEContainer oder die Anwendung TaskContainer ausgeführt wird,
führen Sie die folgenden Aktionen aus:
- Fügen Sie bei Prozessanwendungen die Datei <install_root>/ProcessChoreographer/client/bpe137650.jar
zur EAR-Datei (EAR = Enterprise Archive) Ihrer Anwendung hinzu.
- Fügen Sie bei Taskanwendungen die Datei <install_root>/ProcessChoreographer/client/task137650.jar zur EAR-Datei Ihrer Anwendung hinzu.
- Legen Sie den Parameter Class-Path in der Manifestdatei
des Anwendungsmoduls fest, um die JAR-Datei einzubinden. Das Anwendungsmodul
kann eine J2EE-Anwendung, eine Webanwendung oder eine EJB-Anwendung sein.
- Machen Sie die Home-Schnittstelle der Session-Bean für die Anwendung verfügbar,
und verwenden Sie dabei die JNDI-Suchfunktion (JNDI = Java Naming
and Directory Interface). Das
folgende Beispiel zeigt diesen Schritt für eine Prozessanwendung:
// Ursprünglichen JNDI-Standardkontext abfragen
InitialContext initialContext = new InitialContext();
// Ferne Home-Schnittstelle der Bean BusinessFlowManager suchen
Object result =
initialContext.lookup("java:comp/env/ejb/BusinessFlowManagerHome");
// Suchergebnis in den korrekten Typ umwandeln
BusinessFlowManagerHome processHome =
(BusinessFlowManagerHome)javax.rmi.PortableRemoteObject.narrow
(result,BusinessFlowManagerHome.class);
Die
Home-Schnittstelle der Session-Bean enthält eine Erstellungsmethode für EJB-Objekte.
Die Methode gibt die ferne Schnittstelle der Session-Bean zurück.
- Greifen Sie auf die ferne Schnittstelle der Session-Bean zu. Das
folgende Beispiel zeigt diesen Schritt für eine Prozessanwendung:
BusinessFlowManager process = processHome.create();
- Rufen Sie die von der Serviceschnittstelle bereitgestellten Business-Funktionen auf. Das
folgende Beispiel zeigt diesen Schritt für eine Prozessanwendung:
process.initiate("MyProcessModel",input);
Aufrufe von Anwendungen werden als Transaktionen ausgeführt. Eine Transaktion
wird auf eine der folgenden Arten eingerichtet und beendet:
Das folgende Beispiel zeigt, wie die Schritte 3 bis 5 für eine
Taskanwendung aussehen können.
// Ursprünglichen JNDI-Standardkontext abfragen
InitialContext initialContext = new InitialContext();
// Ferne Home-Schnittstelle der Bean HumanTaskManager suchen
Object result =
initialContext.lookup("java:comp/env/ejb/HumanTaskManagerHome");
// Suchergebnis in den korrekten Typ umwandeln
HumanTaskManagerHome taskHome =
(HumanTaskManagerHome)javax.rmi.PortableRemoteObject.narrow
(result,HumanTaskManagerHome.class);
...
// Zugriff auf die ferne Schnittstelle der Session-Bean
HumanTaskManager task = taskHome.create();
...
// Aufrufen der von der Serviceschnittstelle bereitgestellten Business-Funktionen
task.callTask(tkiid,input);