Beispiel einer zustandslosen Session-Bean


...[Seminar XML und JAVA]... [Rollenverteilung] ...[Literatur]...

Gesamtübersicht: Beispiel einer zustandslosen Session-Bean


Aufgabenstellung

Bei diesem Beispiel handelt es sich um eine zustandslose Session-Bean, die Clients vier Methoden zur Verfügung stellt, nämlich : Die Namen der Methoden lassen sich erkennen, daß sie den vier Grundoperationen (Addieren, Subtrahieren, Multiplizieren und Dividieren) entsprechen.

Folgende Bestandteile einer zustandslosen Session-Bean werden entwickelt:


Das Remote-Interface

Das Remote-Interface definiert Methoden, die Clients zur Verfügung gestellt werden.

import java.rmi.RemoteException;
import java.lang.ArithmeticException;
import javax.ejb.EJBObject;

public interface Calculator extends EJBObject
{

      public int add(int a, int b);


      public int sub(int a, int b);


     public int mul(int a, int b);


     public double div(int a, int b) throws ArithmeticException;


Das Home-Interface

Im Home-Interface werden alle Methoden definiert, die den Lebenszyklus einer Bean betreffen. Dieses Interface wird nach außen hin veröffentlich. Der Client benutzt diese Schnittstelle, um Bean-Instanzen zu erzeugen, zu finden oder zu löschen.

import javax.ejb.EJBHome;
import javax.ejb.CreateException;
import java.rmi.RemoteException;

public interface CalculatorHome extends EJBHome
{

      // erzeugt eine Bean
       
public Calculator create()
           
throws CreateException,
                         RemoteException;


Die Bean-Klasse

Die Bean-Klasse implementiert die Methoden, die im Home- und im Remote-Interface definiert wurden, ohne diese beiden Interfaces im Sinne des Schlüsselwortes implements tatsächlich einzubinden.

import javax.ejb.SessionBean;
import javax.ejb.CreateException;
import javax.ejb.SessionContext;
import java.rmi.RemoteException;

public class CalculatorBean implements SessionBean
{

     // Die Methoden, die einem Client zur
     // Verfügung gestellt werden

     public int add(int a, int b)
     {
         return a + b;
     }

     public int sub(int a, int b)
     {
         return a - b;
     }

     public int mul(int a, int b)
     {
         return a * b;
     }

    public double div(int a, int b) throws ArithmeticException
     {
         return a / b;
     }

     // notwendige Methoden, die den Lebenszyklus
     // einer Bean betreffen

     public void ejbCreate()
     {
         System.out.println("ejbCreate()");
     }

     public void ejbRemove()
     {

         System.out.println("ejbRemove()");
     }

     public void ejbActivate()
     {

         System.out.println("ejbActivate()");
     }

     public void ejbPassivate()
     {

         System.out.println("ejbPassivate()");
     }

     public void setSessionContext(SessionContext context)
     {
       
System.out.println("setSessionContext()");
     }


...[Seminar XML und JAVA]... [Beispiele] ...[Rollenverteilung]... [Literatur]...