Java Reference
In-Depth Information
138 Dritte EJB-Beispielkomponente
(Call-By-Value)
In diesem Beispiel soll demonstriert werden, in welcher Weise die Parameterübergabe bzw.
die Übergabe des Rückgabwerts bei den Aufrufen von Bean-Methoden erfolgt. Zunächst
betrachten wir wieder eine Counter-Klasse (s. Listing 13.6), die aber im Unterschied zu der
Klasse von Listing 13.2 aus Abschnitt 13.6 keine Bean-Klasse ist und deshalb auch keine
Schnittstelle implementieren muss. Gemäß Abschnitt 13.3 gehört diese Klasse zu der Sorte
Hilfsklasse. Was es mit der Implementierung der Schnittstelle Serializable und der Kenn-
zeichnung mit synchronized auf sich hat, wird später noch erläutert.
Listing 13.6 Counter-Hilfsklasse
package javacomp.ejb.counterprovider.server;
import java.io.Serializable;
public class Counter implements Serializable
{
private int counter;
public synchronized int increment()
{
counter++;
return counter;
}
}
Unsere EJB-Komponente soll eine Singleton-Bean-Klasse enthalten. Das einzige davon exis-
tierende Objekt erzeugt bei seiner Initialisierung ein Objekt der eben gezeigten Klasse
Counter und speichert die Referenz darauf in einem Attribut ab. Somit gibt es wie vom
Singleton Bean auch nur ein einziges Objekt von der Counter-Klasse auf dem Server. Von
außen kann eine Methode aufgerufen werden, die dieses einzige Counter-Objekt zurücklie-
fert. Die Schnittstelle und die dazugehörige Implementierung sind sehr einfach; sie sind in
Listing 13.7 und Listing 13.8 zu fi nden.
Listing 13.7 Schnittstelle CounterProvider
package javacomp.ejb.counterprovider.server;
import javax.ejb.*;
@Remote
public interface CounterProvider
{
public Counter getCounter();
}
 
Search WWH ::




Custom Search