Zugriff auf die ferne Session-Bean

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

  1. 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.

  2. 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:

    1. Fügen Sie bei Prozessanwendungen die Datei <install_root>/ProcessChoreographer/client/bpe137650.jar zur EAR-Datei (EAR = Enterprise Archive) Ihrer Anwendung hinzu.
    2. Fügen Sie bei Taskanwendungen die Datei <install_root>/ProcessChoreographer/client/task137650.jar zur EAR-Datei Ihrer Anwendung hinzu.
    3. 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.
  3. 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.
  4. Greifen Sie auf die ferne Schnittstelle der Session-Bean zu. Das folgende Beispiel zeigt diesen Schritt für eine Prozessanwendung:
    BusinessFlowManager process = processHome.create();
  5. 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:
    • Automatisch durch WebSphere Application Server (im Implementierungsdeskriptor ist TX_REQUIRED angegeben)
    • Explizit durch die Anwendung; Sie können Anwendungsaufrufe in einer einzigen Transaktion bündeln:
      // Benutzertransaktionsschnittstelle abrufen
         UserTransaction transaction=
             (UserTransaction)initialContext.lookup("jta/usertransaction");
      
         // Eine Transaktion beginnen
         transaction.begin();
      
           // Anwendungsaufrufe ...
      
         // Bei erfolgreicher Rückgabe die Transaktion festschreiben
         transaction.commit();
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);

Rechtliche Hinweise |

Letzte Aktualisierung: LASTUPDATEDVAR

(c) Copyright IBM Corporation 2005.
Dieses Information Center basiert auf Eclipse-Technologie. (http://www.eclipse.org)