Java Reference
In-Depth Information
139 Vierte EJB-Beispielkomponente
(Call-By-Reference)
Grundsätzlich kann ein EJB-Bean auch die Rolle eines Clients für ein anderes EJB-Bean
einnehmen. Zur Demonstration entwickeln wir eine weitere EJB-Komponente mit der unver-
meidbaren HelloWorld-Anwendung. Die Schnittstelle enthält eine Methode namens say-
Hello mit einem String-Parameter. Die Methode gibt einen String zurück, der einen Gruß für
den als Parameter übergebenen Namen darstellt. Die Schnittstelle dazu fi nden Sie in Listing
13.9.
Listing 13.9 Hello-Schnittstelle
package javacomp.ejb.hello.server;
@javax.ejb.Remote
public interface Hello
{
public String sayHello(String name);
}
Wir nehmen an, dass die Aufrufe der Methode sayHello gezählt werden sollen. Der zurück-
gegebene Gruß soll enthalten, um den wievielten Aufruf der Methode sayHello es sich han-
delt. Nehmen wir ferner an, dass wir die Schwachstelle des Beispiels aus dem vorigen
Abschnitt nicht kennen würden. Deshalb wollen wir die EJB-Komponente CounterProvider
aus dem vorigen Abschnitt zum Zählen verwenden.
1 3 .9 1 Getrennte EJB-Jar-Dateien
In unserer ersten Lösungsvariante werden wir die nutzende Komponente, die wir im Folgen-
den entwickeln, und die genutzte Komponente aus dem vorigen Abschnitt in separate EJB-
Jar-Dateien packen und somit für beide Komponenten ein getrenntes Deployment durchfüh-
ren. In Listing 13.10 ist die erste Variante der Bean-Klasse unserer HelloWorld-Komponente
gezeigt. Wir entscheiden uns für die Sorte Stateless Bean und beschaff en uns zu Beginn wie
ein Client Zugriff auf den CounterProvider. Vom CounterProvider-Bean lassen wir uns dann
bei jedem Methodenaufruf den Zähler geben, um die Methodenaufrufe zu zählen.
Listing 13.10 Implementierung der Hello-Schnittstelle mit Lookup (Variante 1)
package javacomp.ejb.hello.server;
import javacomp.ejb.counterprovider.server.*;
import javax.naming.*;
import javax.annotation.PostConstruct;
import javax.ejb.*;
@Stateless(mappedName="Hello")
public class HelloImpl implements Hello
{
 
Search WWH ::




Custom Search