Lerneinheit 1.4 führt Sie Schritt für Schritt durch die Erstellung eines Webprojekts zum Testen Ihrer Anwendung.
Bevor Sie mit dieser Lerneinheit beginnen können, müssen Sie Lerneinheit 1.3 abgeschlossen haben.
Im vorliegenden Lernprogramm werden Sie folgende Arbeitsschritte
ausführen:
- Erstellen eines Webprojekts mit dem Namen "EJBCounterWebEE6".
- Erstellen eines Webfragmentprojekts EJBCounterWebFragEE6.
- Erstellen einer Webseite mit dem Namen "EJBCount.jsp".
- Erstellen eines Servlets mit dem Namen "EJBCount.java".
- Ausführen des Servlets zum Testen Ihrer Anwendung.
- Extrahieren von "EJB3CounterDB.zip"
- Laden Sie die erforderliche Datenbank herunter, die für EJB 3.1-Zählerprojekte Persistenz bereitstellt.
- Nachdem Sie EJB3CounterDB heruntergeladen haben, blenden Sie ein und klicken Sie doppelt auf die Datei "EJB3CounterDB.zip". In einem externen Fenster wird ein Extrahierungsdienstprogramm
geöffnet.
: Extrahieren Sie die Datenbank in den Ordner /derby/databases Ihres
WebSphere Application Server-Installationsordners:
: Extrahieren Sie die Datenbank in den Ordner /derby/databases Ihres WebSphere Application Server-Installationsordners:- Erteilen Sie dem Benutzer ohne Rootberechtigung Zugriff auf das Datenbankverzeichnis. (Am einfachsten ist es dabei, allen Benutzern Zugriff zu erteilen: chmod ugo+x databases.
- Erteilen Sie dem Benutzer ohne Rootberechtigung Schreibzugriff auf die extrahierte Datenbank.
(Sie können z. B. die Extraktion unter der ID eines Benutzers
ohne Rootberechtigung ausführen, unter der Voraussetzung, dass Sie Zugriff auf das
Verzeichnis databases haben).
Wichtig: Je nach Typ des
WebSphere Application Servers kann die Standardposition von
/derby/databases
unterschiedlich sein. Informationen zu Standardinstallationsverzeichnissen finden Sie in
WebSphere Application Server erstellen.
- Klicken Sie in der Java™ EE-Perspektive mit der rechten Maustaste auf Ihr EAR-Projekt und wählen Sie aus, um den Webprojektassistenten zu öffnen.
- Gehen Sie auf der Seite "Webprojekt" wie folgt vor:
- Geben Sie im Feld Projektname die Zeichenfolge EJBCounterWebEE6 ein.
- Wählen Sie im Feld für die Projektschablonen
die Option Einfach aus.
- Wählen Sie im Feld Programmiermodell
die Option Java EE aus.
- Klicken Sie auf der Seite für die Implementierung in der Liste der verfügbaren Konfigurationsoptionen auf Implementierung, um die Seite für die Implementierungskonfiguration zu öffnen.
- Wählen Sie unter Ziellaufzeit die Option "WebSphere Application Developer Version 8" aus der Dropdown-Liste aus.
- Inaktivieren Sie Support für WebSphere-Bindings und -Erweiterungen hinzufügen.
- Wählen Sie im Feld Webmodulversion
den Eintrag 3.0 aus.
- Klicken Sie im Feld EAR-Zugehörigkeit auf Projekt einer EAR hinzufügen.
- Stellen Sie sicher, dass
EJBCounterSampleEE6EAR im Feld Name des EAR-Projekts angezeigt wird.
- Übernehmen Sie die anderen Standardwerte und klicken Sie auf Fertigstellen.
Wenn Sie aufgefordert werden anzugeben, ob die zugehörige Perspektive geöffnet werden soll,
dann klicken Sie auf Nein.
- Klicken Sie mit der rechten Maustaste auf das Projekt EJBCounterWebEE6
und wählen Sie dann aus.
- Geben Sie auf der Seite Neue Webseite im Feld Dateiname die Zeichenfolge EJBCount.jsp ein. Stellen Sie sicher, dass
JSP die ausgewählte Schablone ist und klicken Sie auf Fertigstellen.
- Ersetzen Sie in der Quellensicht des Webseiteneditors den gesamten vorhandenen Code durch diesen Code und drücken Sie die Tastenkombination "STRG+S", um die Daten zu speichern:
<%@page session="false"%>
<HTML>
<HEAD>
<TITLE>IBM WebSphere EJB 3.1 and JPA 2.0 Counter Sample</TITLE>
<BODY bgcolor="cornsilk">
<H1>EJB 3.1 and JPA 2.0 Counter Sample</H1>
<P>
<B>
This application communicates with the WebSphere Application Server using http requests to increment a singleton EJB 3.1 counter bean which is using a JPA 2.0 entity (ie. keeps a persistent counter in a Derby database table).
</B>
<FORM METHOD=POST ACTION="counter">
<BR/>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires",0);
String msg = (String) request.getAttribute("msg");
if (msg == null) msg = "";
%>
<B>Click on the Increment button to increment the count</B>
<BR/><BR/>
<INPUT TYPE=SUBMIT VALUE="Increment">
</FORM>
<H3><%=msg%></H3>
</BODY>
</HTML>
- Klicken Sie mit der rechten Maustaste auf das Projekt EJBCounterWebEE6 und
wählen Sie dann aus.
- Geben Sie auf der Seite Neues Servlet im Feld Java-Paket die Zeichenfolge com.ibm.example.websphere.ejb3sample.counter ein.
- Geben Sie im Feld Klassenname die Zeichenfolge EJBCount ein und klicken Sie dann auf Weiter:
- Geben Sie im Feld Name die Zeichenfolge EJB
Count Servlet ein. Bearbeiten Sie im Feld URL-Zuordnungen
die vorhandene Zuordnung, heben Sie "/EJB Count Servlet" hervor und klicken Sie auf Bearbeiten. Ersetzen Sie das Muster durch /counter und klicken Sie auf Fertigstellen:
- Fügen Sie Implementierungsassemblyeinträge hinzu:
- Klicken Sie mit der rechten Maustaste auf das Projekt EJBCounterWebEE6
und wählen Sie dann Eigenschaften aus.
- Wählen Sie Deployment-Assembly, anschließend Manifesteinträge
aus und klicken Sie auf Hinzufügen.
- Wählen Sie EJBCounterSampleEE6.jar
aus und klicken Sie erst auf Fertigstellen und dann auf OK.
- Erweitern Sie
und doppelklicken Sie dann auf die Datei EBJCount.java. Daraufhin wird die Datei im Java-Editor geöffnet.
- Ersetzen Sie den vorhandenen Code durch den folgenden Code und drücken Sie die Tastenkombination "STRG+S", um die Daten zu speichern:
package com.ibm.example.websphere.ejb3sample.counter;
// This program may be used, executed, copied, modified and distributed
// without royalty for the purpose of developing, using, marketing, or distributing.
import java.io.IOException;
import javax.ejb.EJB;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* This servlet demonstrates an EJB3 counter bean with JPA.
*/
@WebServlet(
description="This servlet demonstrates the various ways to increment EJB 3.1 counter beans.",
name="EJB Count Servlet",
displayName="EJB Count Servlet",
urlPatterns="/counter"
)
public class EJBCount extends HttpServlet {
private static final long serialVersionUID = -5983708570653958619L;
// Injektion zum Abrufen der EJB verwenden
@EJB private LocalCounter singletonCounter;
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String msg = null;
int ejbCount = 0;
try {
ejbCount = singletonCounter.getTheValue();
}
catch (RuntimeException e) {
msg = "Error - getTheValue() method on EJB failed!";
e.printStackTrace();
}
msg = "EJB Count value for Singleton Bean with JPA: " + ejbCount;
// Attribute definieren und JSP senden.
req.setAttribute("msg", msg);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/EJBCount.jsp");
rd.forward(req, res);
}
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String msg = null;
int ejbCount = 0;
try {
ejbCount = singletonCounter.increment();
}
catch (RuntimeException e) {
msg = "Error - increment() method on EJB failed!";
e.printStackTrace();
}
msg = "EJB Count value for Singleton Bean with JPA: " + ejbCount;
// Attribute definieren und JSP senden.
req.setAttribute("msg", msg);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/EJBCount.jsp");
rd.forward(req, res);
}
}
Sie sind nun bereit für Übung 1.5: Webprojekt zum Testen Ihrer Anwendung erstellen.