PDF-Dokument

Transcrição

PDF-Dokument
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Benutzung von Eclipse zur Entwicklung von
Java EE 5 Anwendungen mit dem JBoss
Application Server 5.0
Installation
Eclipse in der Version Ganymede können Sie von
http://www.eclipse.org/downloads/
herunterladen. Wählen Sie die Version „Eclipse IDE for Java EE Developers“.
Für Windows ist das zur Zeit die Datei
eclipse-jee-ganymede-SR1-win32.zip
Um aus Eclipse heraus auf Subversion Repositories zugreifen zu können,
muss der Plug-in Subclipse installiert werden.
Wählen Sie in Eclipse das Menü Help|Software Updates... Wählen Sie dann
den Tab Available Software und dann den Button Add Site... Geben sie dort
http://subclipse.tigris.org/update_1.4.x
ein, wählen alle Subclipse-Features an und drücken dann Install...
Schließen Sie die Installation ab.
JBoss kann von der JBoss Website heruntergeladen werden:
http://www.jboss.org/jbossas/downloads/
Die aktuelle Version ist 5.0.0.CR2. Wählen Sie diese zum Download aus.
Laden Sie dann das folgende Archiv:
jboss-5.0.0.CR2-jdk6.zip
Dieses ist für Java 6 als Run-Time Umgebung kompiliert.
Entpacken Sie das Archiv in ein geeignetes Verzeichnis. In der FH hat es sich
als günstig erwiesen, dieses für das laufende Semester nach
C:\Temp\IhrWurzelVerzeichnis
zu entpacken. Erstens besitzen Sie darauf Schreibrechte und zweitens können
-1
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
dabei auch während des Semesters noch Änderungen oder Zusätze
nachinstalliert werden.
-2
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Starten und Auswahl des Workspaces
Starten Sie Eclipse als die Entwicklungsumgebung. Wählen Sie als
Workspace ein Verzeichnis, in dem Sie Schreibberechtigung haben. Nennen
Sie ihn z.B. „workspaceConverter“.
Internetzugang konfigurieren
Konfigurieren Sie Ihren Internetzugang, falls Sie dabei einen Proxy benötigen
(in der FH notwendig!).
Wählen Sie einmal zu Anfang Window|Preferences und dort Internet und
dann Proxy Settings. Enablen Sie ggf. die Verwendung eines Proxys. Tragen
Sie für die FH
proxy.informatik.fh-wiesbaden.de
und als Port
8080
ein.
Konfigurieren Sie JBoss als den
Application Server
Wählen Sie einmal zu Anfang Window|Preferences und dort Server und
dann Runtime Environment. Fügen Sie mit Add… unter „JBoss“ dann „JBoss
v5.0“ hinzu. Wählen Sie auch gleich, dass ein Lokaler Server erzeugt wird.
Navigieren Sie anschließend zu dem Installationsverzeichnis.
Prüfen Sie weiterhin, dass Sie bei dem Java Compiler als Compiler
Compliance level „6.0“ eingestellt ist (es muss das Java Development Kit in
der Version 6.0 installiert sein).
-3
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Geben Sie das zugehörige Installationsverzeichnis an (neueste Version ist
z.Zt. .../jboss-5.5.5.CR2 ! Wählen Sie Ihr Verzeichnis unter C:\Temp\...)
-4
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Erzeugen eines neuen EJB-Projektes
Wählen Sie im Menü
File|New|Other...
und in dem Wizzard dann unter Java EE ein Enterprise Application Project:
-5
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Geben Sie dem Projekt den Namen „Converter“. Achten Sie darauf, dass die
richtige Target Runtime definiert ist (JBoss v5.0 !).
Drücken Sie „Next >“.
-6
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Wählen Sie unbedingt „Generate Deployment Descriptor“ und an dieser Stelle
noch keine weiteren Module (sonst erhalten diese keine Deployment
Deskriptoren):
Anschließend fügen wir weitere Module zum dem EAR Projekt hinzu. Wählen
Sie wieder
File|New|Other...
-7
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Und dann unter EJB den Punkt „EJB Project“:
Als Name wählen Sie ConverterEJB und fügen es dem EAR hinzu. Achten
Sie, dass EJB Module version 3.0 gewählt ist:
-8
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Erzeugen Sie kein EJB ClientJAR Module, aber lassen Sie einen Deployment
Deskriptor generieren:
-9
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Als nächstes fügen Sie noch aus der Auswahl Java EE als weiteres Projekt ein
„Application Client Project“ hinzu:
- 10
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Nennen Sie das Projekt „ConverterClient“, fügen es ebenfalls dem EAR hinzu.
Achten Sie wieder auf die richtige Version 5.0 des Application Client modules:
- 11
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Auch hier lassen Sie wieder einen Deployment Deskriptor erzeugen und auch
eine Main Klasse:
- 12
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Nach Fertigstellung ergibt sich in der Eclipse Java EE Perspektive, die
automatisch angewählt wurde, das folgende Bild (auch der JBoss Server
wurde bereits erzeugt!):
- 13
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Erzeugen der Session Bean Converter
In der Ganymede-Version von Eclipse gibt es nun einen Wizzard, der direkt
Session Beans erzeugt. Markieren Sie das ConverterEJB Projekt und wählen
dann wieder über New|Other... aus dem Bereich EJB in dem Wizzard Session
Bean:
Geben Sie der Session Bean dem Namen „ConverterSession“ und wählen Sie
als Package „converter“. Lassen Sie den Default Stateless. Als Interface Typ
wählen Sie Local ab und selektieren stattdessen Remote. Akzeptieren Sie die
vorgeschlagenen Namenskonventionen:
- 14
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Wählen Sie einen Namen als „Mapped name“: ConverterBean. Das erleichtert
später den JNDI-Lookup aus dem Client.
Die beiden Checkboxes für EJB 2.x sind für uns nicht sinnvoll (einfach
abwählen):
- 15
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Es öffnet sich der Editor für diese Session Bean. Öffnen Sie zusätzlich das
Remote Interface. Wir ergänzen es wie folgt:
package converter;
import java.math.BigDecimal;
import javax.ejb.Remote;
@Remote
public interface ConverterSessionRemote {
public BigDecimal dollarToYen(BigDecimal dollars);
public BigDecimal yenToEuro(BigDecimal yen);
}
Die Annotation @Remote, um das Interface als Remote Interface zu
kennzeichnen, wurde bereits von dem Wizzard erzeugt. Wir definieren hier die
beiden Business-Methoden für die Session Bean. Eclipse hilft uns mit den
nötigen Imports.
- 16
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Als nächstes gehen wir wieder in den Editor der eigentliche Bean Klasse der
Session Bean. Die aufgrund des Interfaces zu implementierenden Methoden
können automatisch als leere Methodenrümpfe erzeugt werden.
Implementieren Sie die Methoden wie folgt:
package converter;
import java.math.BigDecimal;
import javax.ejb.Stateless;
@Stateless
public class ConverterBean implements ConverterSessionRemote {
private BigDecimal yenRate = new BigDecimal("117.5000");
private BigDecimal euroRate = new BigDecimal("0.0067");
public BigDecimal dollarToYen(BigDecimal dollars) {
BigDecimal result = dollars.multiply(yenRate);
return result.setScale(2, BigDecimal.ROUND_UP);
}
public BigDecimal yenToEuro(BigDecimal yen) {
BigDecimal result = yen.multiply(euroRate);
return result.setScale(2, BigDecimal.ROUND_UP);
}
}
Wichtig ist hier wieder die vom Wizzard bereits eingefügte Annotation
@Stateless, um die Klasse als stateless Session Bean zu kennzeichnen.
- 17
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Client Application erstellen
Application Client Projekt
Wurde bereits zu Anfang erzeugt.
Wählen Sie das Application Client Project „ConverterClient“.
Unter appClientModule gibt es im Default-Package eine Klasse Main mit einer
statischen main()-Methode.
Ändern Sie diese Methode wie folgt ab:
main()-Methode
In die main()-Methode den folgenden Code einfügen. Sie erhalten
Fehlermeldungen, die Sie mit entsprechendem Exception-Handling
(NamingException) begegnen müssen:
Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
props.setProperty(Context.URL_PKG_PREFIXES,
"org.jboss.naming.client");
props.setProperty(Context.PROVIDER_URL, "jnp://localhost:1099");
props.setProperty("j2ee.clientName", "ConverterClient");
Context ctx = new InitialContext(props);
Object ref = ctx.lookup("ConverterBean");
ConverterSessionRemote conv = (ConverterSessionRemote) ref;
BigDecimal param = new BigDecimal("100.00");
BigDecimal amount = conv.dollarToYen(param);
System.out.println(param + " dollars are " + amount + " yen.");
amount = conv.yenToEuro(param);
- 18
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
System.out.println(param + " yen are " + amount + " Euros.");
System.exit(0);
Wichtig ist hier, dass wir die Property j2ee.clientName (scheint JBossspezifisch zu sein) auf den Namen des Projekts (bzw. auf den Wert des
Elements display-name in "application-client.xml") setzen!
Weiterhin müssen etliche Importe durchgeführt werden. Immer java- oder
javax-Packages importieren (nicht von com.ibm... oder org.omg.CORBA..
sondern java.util für Properties und javax.naming für Context etc.)).
Da der Klient die Interfaces unserer Session Bean verwenden muss, müssen
die auch projektmäßig bekannt sein. Erst dann lassen sich diese ImportAnweisungen automatisch erzeugen!
Ändern Sie in den Properties des ConverterClient-Projektes die Java EE
Module Dependencies:
- 19
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
und die Project References:
- 20
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Starten des JBoss Application Servers
Wählen Sie in dem unteren Fenster den Tab „Servers“.
Wenn es noch keinen Server gibt, erzeugen Sie einen aus dem Kontext-Menü
mit New | Server.
Wählen Sie den schon zu Anfang definierten Server „JBoss v5.0“. Ändern Sie
einige Defaults, indem Sie im Context-Menü über Open den entsprechenden
Editor öffnen.
Schalten Sie das automatische Publizieren (Deploy) ab und ändern Sie den
Timeout Wert für das Starten auf 100 sec (das Starten dauert manchmal
schon fast solange wie die Voreinstellung):
Starten Sie jetzt den Server durch Auswahl von „Start“ im Kontext-Menü des
Servers.
Fügen Sie über dasselbe Kontext-Menü über „Add and Remove Projects…“
das Converter-Projekt hinzu.
- 21
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Daraufhin wird es im Application Server automatisch publiziert (deployed).
Beobachten Sie den Console-Output.
Starten der Anwendung
Wählen Sie nun das ConverterClient Projekt und hier die Main-Klasse. Wählen
Sie im Kontext-Menü
Run As|Java Application
und beobachten die Konsole.
Viel Erfolg!
- 22
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Hinzufügen eines Web-Clients
Erzeugen Sie wiederum über
File|New|Other...
ein „Dynamic Web Project“:
- 23
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Nennen Sie es ConverterWeb und fügen es ebenfalls dem EAR-Projekt hinzu.
Achten Sie auf die neueste Version des Dynamic Web Moduls (2.5):
- 24
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Lassen Sie im nächsten Fenster die Voreinstellungen:
Merken Sie sich Context Root. Diesen Pfad in der Web-URL benötigen Sie
später, um die Web-Anwendung aufzurufen.
Wenn das Projekt erzeugt wurde, gehen Sie über dessen Kontext-Menü in
seine Properties.
Wählen Sie Project Facets und dort JavaServer Faces in der Version 1.2:
- 25
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Eclipse fragt nach weiterer Konfiguration. Klicken Sie darauf; lassen Sie die
Voreinstellung, die JBoss Server Implementierung zu benutzen.
Fügen Sie *.faces als URL Mapping Pattern hinzu, löschen Sie /faces/*.
- 26
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Wählen Sie das ConverterWeb Projekt aus.
Mit Hilfe des Context-Menüs fügen Sie eine JSP-Seite hinzu:
Sie wird in den Ordner WebContent eingefügt. Nennen Sie die Java Server
Page (JSP): ConverterTest.jsp
- 27
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Drücken Sie „Next“, wählen Sie den ersten Eintrag (s. Abb.):
Drücken Sie „Finish“.
Öffnen Sie mit dem Text-Editor die neue JSP-Datei.
Damit die JSF-Library auch von Eclipse erkannt wird, muss sie zum Build-Pfad
hinzugefügt werden. Im Kontext-Menü des Web-Projektes öffnen Sie Java
Build Path:
- 28
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Drücken Sie Add Library... und wählen Sie JSF Libraries:
- 29
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Drücken Sie Next>.
Navigieren Sie nun zu
../jboss-5.0.0.CR2/server/default/deploy/jbossweb.sar/jsf-libs/jsf-impl.jar
und wählen dies aus. Geben Sie der Bibliothek einen sprechenden Namen,
wählen als Version 1.2 und machen das Häkchen bei „Is JSF Implementation“:
Entsprechend gehen Sie mit den beiden verbleibenden jar-Files in dem jsf-libs
Verzeichnis von JBoss vor. Hier jedoch ohne das obige Häkchen:
- 30
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Wählen Sie dann beide Bibliotheken zusammen als die JSF Library aus und
drücken Finish:
Nun müsste alles bekannt sein.
- 31
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Innerhalb des <f:view>-Tags ergänzen Sie nun:
<body>
<f:view>
<h:form>
<h:outputLabel rendered="true" value="Enter an amount to convert:">
</h:outputLabel>
<h:inputText value="#{converterBean.amount}" tabindex="0">
</h:inputText>
<br>
<h:outputLabel rendered="true"
value="#{converterBean.amount} dollars are #{converterBean.dollarToYen} yen">
</h:outputLabel>
<br>
<h:outputLabel rendered="true"
value="#{converterBean.amount} Yen are #{converterBean.yenToEuro} Euros">
</h:outputLabel>
<br>
<h:commandButton id="convert" value="Convert!"
action="#{converterBean.convert}" />
</h:form>
</f:view>
</body>
Erstellen Sie eine zweite (normale) JSP-Seite mit dem Namen index.jsp.
Diese dient als Einstiegsseite (Welcome File) und lenkt die Eingabe nur auf die
ConverterTest.jsp Seite um, allerdings über das Faces Servlet (deshalb die
Endung .faces).
Ihr Inhalt ist nur kurz (nur diese 2 Zeilen; alles andere löschen!):
<%@ page session="false" contentType="text/html;charset=utf-8"%>
<% response.sendRedirect("ConverterTest.faces"); %>
- 32
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
JSF Backing Bean
Die Schnittstelle zu der Session Bean bildet eine sog. Backing Bean, eine
normale Java Klasse.
Selektieren Sie das ConverterWeb Projekt und fügen Sie eine Java-Klasse
hinzu. Nennen Sie sie ConverterJSFBean.java im Package beans.
- 33
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Als Inhalt geben Sie ein:
package beans;
import java.math.BigDecimal;
import javax.ejb.EJB;
import converter.ConverterRemote;
public class ConverterJSFBean {
@EJB private ConverterRemote session;
private BigDecimal amount;
private BigDecimal dollarToYen;
private BigDecimal yenToEuro;
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public BigDecimal getDollarToYen() {
return dollarToYen;
}
public void setDollarToYen(BigDecimal dollarToYen) {
this.dollarToYen = dollarToYen;
}
public BigDecimal getYenToEuro() {
return yenToEuro;
}
public void setYenToEuro(BigDecimal yenToEuro) {
this.yenToEuro = yenToEuro;
}
public String convert() {
dollarToYen = session.dollarToYen(amount);
yenToEuro = session.yenToEuro(amount);
return "success";
}
}
- 34
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
JAR Dependencies
In den Properties des Web-Projektes die Java EE Module Dependencies
setzen:
- 35
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Ggf. auch noch die Project References:
Jetzt sollte wieder alles o.k. sein.
Man merke: Die Referenz auf das Remote Interface des Session Bean wird
nun (so will es die Java EE Spezifikation) allein durch Vorstellen der
Annotation @EJB injiziert!
- 36
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Backing Bean bekannt geben
Doppelklicken Sie auf die Datei faces-config.xml (in WEB-INF).
Wählen Sie den Tab Managed Bean und fügen unsere Bean hinzu (ggf. über
Browse...:
- 37
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Wir geben der Bean einen etwas anderen Namen, unter dem sie z.B. in einer
JSF-Seite bekannt ist. Als Scope wählen wir session (Voreinstellung):
Änderungen deployen
Deployen Sie die Änderungen in den Application-Server, indem Sie im
Kontext-Menü des Servers „Publish“ wählen.
- 38
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009
Spezielle Methoden der Softwaretechnik: Java EE 5, EJB 3.0
Benutzung Eclipse/JBoss 5.0 EJB 3: Session Bean mit Application Client und Web Client
Web-Client ausführen
Um den Web-Client auszuführen rufen Sie im Kontext-Menü des WebProjektes
Run as...|Run on Server
auf. Ggf. müssen Sie hier noch den Server einrichten.
Der Server wird gestartet und ein Webbrowser öffnet sich.
Als URL ist bereits eingetragen:
http://localhost:8080/ConverterWeb/
Es erscheint sofort unsere Seite.
Geben Sie einen Wert an (hier war es 100) und drücken dann „Convert!“:
Sie haben es geschafft!
- 39
© Prof. Dr. B. Dreher, FH Wiesbaden, SG Allg. Informatik
-
Spez. Meth. der Softwaretechnik: Java EE 5, EJB 3.0, WS 2008/2009