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