Beispiel: Stateless Session Bean
Beispiel für eine Stateless Session Bean, auf die per Webclient und mittels Application Client
zugegriffen wird.
Aufbau des Beispieles
a) Bean-Klasse mit Local und Remote-Interfaces.
b) Webclient: JSP-Seite
c) WebClient: Servlet
d) App-Client.
Anlegen der Application
Schritt 1: Starten des Deploytools (entweder im Startmenü über "Programme"\"Sun Microsystems"\
"Application Server"\"Deploytool" oder durch Aufruf von "C:\Programme\Sun\AppServer\bin\deploytool.bat").
Schritt 2: Anlegen einer neuen Application über "File"->"New"->"Application...".
Im Textfeld "Application File Name" gibt man den Namen der anzulegenden EAR-Datei an.
Im Feld "Application Display Name" wird der Anzeigename angegeben, wie ihn das Deploytool (oder
später auch der Application Server) anzeigt.
Deploy der StatelessBean
Die Application im Deploytool auswählen.
Im Menü "File" den Punkt "New" -> "Enterprise Bean" wählen. Es öffnet sich der Assistent zum Anlegen einer Bean.
Schritt 1: Einstellungen siehe Screenshot.
Im der Radiobutton-Gruppe "Jar-Location" wird (falls nicht automatisch vorgewählt) der Punkt
"Create New JAR Modul in Application" gewählt, die Anwendung sollte die eben erzeugt sein.
Rechts wird ein JAR-Name angegeben. In diesem JAR werden alle Klassen dieses Moduls gespeichert, es ist in der EAR-Datei enthalten.
Schließlich muss der Inhalt des JARs definiert werden. Dies geschieht über "Edit Contents".
Im oberen Baum wählt man die .class-Dateien (nur die der Bean und die Exception "InvalidParameterException",
nicht aber den Application-Client, dessen .class-Datei sich im selben Verzeichnis befindet) und klick auf "Add".
Schritt 2: Bean-Klasse sowie die Interfaces auswählen.
Damit ist das Bean-Deploy fast fertig. Im nächsten Schritt beläßt man den Radiobutton
"Expose bean as web service endpoint" auf "No" und kann auf "Finish" klicken.
Deploy der Web-Anwendung
Schritt 1: Hinzufügen einer neuen Web Componente mit der JSP, dem Servlet, Local/Remote Interface
und Local/Remote Home der Bean sowie der Exception-Klasse "InvalidParameterException".
Den Assistenten erreicht man über "File" -> "New" -> "Web Component..."
Schritt 2: Typ der Komponente ist "JSP Page"
Schritt 3: Als JSP-Filename die einzige JSP-Seite der Anwendung verwenden.
Für das Deploy des Servlets erneut eine Webcomponente zu der bestehenden WAR-Datei zufügen.
Es müssen keine weiteren Dateien gewählt werden, da die Servlet-Klasse bereits im vorherigen
Schritt gewählt war.
Schritt 2: Typ der Komponente ist diesmal "Servlet".
Schritt 3: Die Servlet-Klasse auswählen, alle anderen Werte auf Defaults belassen.
Nachbearbeitung
In der WebApp müssen die benötigten EJB-Referenzen zugefügt werden. Dazu die WebApplication
auswählen und auf der Registerkarte "EJB Ref's" den Button "Add" klicken.
Remote-Interfaces: "ejb/GeometricModel" referenziert "com.knauf.ejb.stateless.GeometricModelHome" und "com.knauf.ejb.stateless.GeometricModel".
Local Interfaces: "ejb/LocalGeometricModel" referenziert "com.knauf.ejb.stateless.LocalGeometricModelHome" und "com.knauf.ejb.stateless.LocalGeometricModel".
Auf der Registerkarte "General" eine Context Root angeben, z.B. "stateless".
Jetzt ist der Webclient über http://localhost:8080/stateless/ erreichbar.
Es erscheint eine Tomcat-Standard-Seite mit einer Auflistung aller Dateien in diesem Context. Man muss die JSP
"GeometricModelTest.jsp" auswählen. Für Fortgeschrittene: Man kann die JSP-Datei unter "File Ref's"
als "Welcome File" angeben und erhält sie dann direkt beim Aufrufen des obenstehenden Links.
Für das Servlet muss ein Alias angelegt werden, der den Namen angibt, unter dem es von außen erreichbar ist.
Dies geschieht, indem man die Servlet-Komponente wählt und auf der Registerkarte "Aliases" einen
Alias namens "/servlet/GeometricModelServlet" zufügt. Wichtig ist, dass der Servletname
"GeometricModelServlet" lautet, da er so im Code beim Aufbau des Formulars verwendet wird.
Das Servlet ist über http://localhost:8080/stateless/servlet/GeometricModelServlet
erreichbar.
Deploy des Application Clients
Durch Aufruf von "File" -> "New" -> "Application Client..." gelangt man in den Assistenten
für Application Clients.
Schritt 1: Hinzufügen eines Application Clients, bestehend aus der Application-Datei,
den Interfaces der Bean und der Exception-Klasse "InvalidParameterException".
Schritt 2: Auswählen der MainClass "GeometricModelApplicationClient".
Nachbearbeitung: Hinzufügen der EJB-Referenz. Wichtig: Es MUSS das RemoteInterface sein,
die Eingabe einer lokalen Referenz ist im Dialog möglich, ist allerdings inhaltlich falsch und
verursacht ungültiges XML in der Config-Datei.
Endgültigs Deploy
Für den ApplicationClient müssen wir ein ClientJar zurückgeben lassen. Hierzu die Checkbox "Return client jar" setzen und
ein Zielverzeichnis irgendwo im Dateisystem wählen. Der Name der JAR-Datei ergibt sich aus dem Namen, den man beim
Erstellen des ApplicationClients im Deploytool angegeben hat.
Start des Appclients durch diesen Aufruf
appclient -client StatelessAppClient.jar
"appclient" ist eine Bat-Datei im Verzeichnis "C:\Programme\Sun\AppServer\bin". Falls beim Aufruf die Meldung
"Datei nicht gefunden" erscheint, fehlt wahrscheinlich der Pfad in der PATH-Umgebungsvariablen.