Teil 2

Werbung
4
Erstellen unseres Webprojektes HellDevelopers
Die Möglichkeiten, die ein Web-Projekt zur Verfügung stellt können Sie im Kapitel
2.1.1 Projekte nachlesen.
Das Webprojekt hat folgenden Inhalt:
•
•
•
Eine Startseite namens index.html.
Eine Seite namens DokuContainer, die in 2 Frames aufgeteilt wurde. Die linke
Seite für das Menü und die rechte Seite zum Anzeigen der ausgewählten
Menüeinträge. Vorbelegt ist die rechte Seite mit einer Welcome.html.
Eine menue.html, die in den linken Frame implementiert wurde und
verschiedene html Seiten, die man vom Menü aus aufrufen kann.
4.2
Arbeitsschritte zum Erstellen des Webprojektes:
Klicken Sie im Menü Datei auf „Neu“, „Projekt“ unter „Web“ finden Sie den Eintrag
Webprojekt. Wählen Sie diesen aus. Es erscheint folgendes Fenster.
Unser Projektname ist in diesem Fall „HellDevelopers“. Unter dem Namen des
Unternehmensanwendungsprojektes haben wir HellDevelopersEAR angegeben.
Dieses Feld ist mit DefaultEAR vorbelegt. Das könnte man so stehen lassen. Aus
Gründen der Zuordenbarkeit haben wir es jedoch geändert. Klicken Sie auf „Fertig
stellen“. Schon ist das Projekt erstellt.
2
4.2.1 Erstellen der „index.html“
Zum erstellen einer HTML- Seite in einem Webprojekt, klicken Sie im Menü Datei auf
„Neu“, „HTML- Datei“. Sie können aber auch in der Symbolleiste diesen Button
wählen.
Es erscheint folgendes Fenster:
Hier werden sie aufgefordert einen Ordner auszuwählen. HTML- Seiten legt man am
besten im Ordner WebApplication ab. Geben Sie anschließend den Dateinamen
ein und klicken Sie auf „Fertig stellen“.
Auf unserer index.html haben wir ein Rollover erstellt. Der WSAD bietet mit
seinem Websphere Studio Webart Designer eine Möglichkeit Images erstellen oder
bereits vorgefertigte Images zu bearbeiten.
Dazu klicken Sie in der Symbolleiste dieses Symbol.
Wählen Sie dort den Ordner aus, indem die Datei abgelegt werden soll, geben Sie
einen Dateinamen an und klicken Sie auf „Fertig stellen“. Der Websphere
Studio Webart Designer wird automatisch geöffnet.
3
4.2.2 Erstellen der Datei „DokuContainer“ mit Frames
Die HTML- Seite erstellen Sie genauso wie die index.html. Um eine Seite in
Frames einzuteilen gehen Sie in der Web- Perspektive im Menü „Frame“, „Frame
teilen“ auf „Vertikal teilen“. Die HTML Seite wird in zwei Teile geteilt. Hier
werden Sie gefragt ob sie ein neues übergeordnetes Frameset erstellen wollen oder
die aktuelle Datei als übergeordnetes Frameset festgelegt werden soll.
Da wir die Datei „DokuContainer“ eigens zum Erstellen eines Framesets generiert
haben, wählen Sie hier: Aktuelle Datei als übergeordnetes Frameset
festlegen und neue Rahmendateien erstellen.
Um die Startseiten festzulegen, die beim Aufruf dieser Seite als erstes angezeigt
werden, klicken Sie im Rahmen die rechte Maustaste und wählen Sie im
Kontextmenü „Im Rahmen öffnen“. Dort können Sie die Seite auswählen, die
dort erscheinen soll. In unserem Fall ist das im linken Frame die menü.html und im
rechten die welcome.html.
4.2.3 Erstellen der restlichen HTML Seiten.
Die restlichen HTML- Seiten wurden auf die gleiche Art und Weise erstellt, wie die
index.html und bedürfen keiner näheren Erklärung.
4
4.2.4 Erstellen des Servlets „FirstServlet“
4.2.4.1
Was ist ein Servlet ?
Auch Servlets sind Java Komponenten. Diese laufen, wie der Name schon sagt auf
der Serverseite ab.
Meist werden sie benutzt um Webapplikationen im Internet mit zusätzlichen
Funktionen zu versehen. In diesem Fall wird vom Anwender über das http- Protokoll
eine Anfrage gestellt, auf dem Server wird die entsprechende Aktion ausgeführt, eine
Antwort in entsprechendem Format generiert und wieder an den Anfragenden
zurückgeschickt.
Beispiel:
Der Anwender ruft eine HTML- Seite eines Buchladens auf. Er stellt dort die Anfrage
für ein bestimmtes Buch. Die Anfrage wird auf dem Server bearbeitet, indem z.B.
eine Datenbankabfrage stattfindet und die Antwort wieder zurückgesendet wird.
Ein Servlet läuft in einer speziellen Ablaufumgebung, dem Servlet- Container. Er
steuert die Instanzzierung und das Löschen des Servlets. Jede Anfrage läuft vom
Client zum Server, von dort zum Servlet- Container, der das entsprechende Servlet
sucht und anspricht. Die generierte Antwort wird dann vom Container an den Server
und von dort wieder zum Client weitergereicht.
Application Server
Servlet
Client
Webserver
Datenbank
5
4.2.4.2
Erstellen des Servlets
In unserem Webprojekt wollen wir ein einfaches Servlet erstellen, das die Ausgabe
„Hello World“ zur Folge hat.
Klicken Sie in der Symbolleiste auf den Java-Servlet Klasse Button
Es erscheint folgendes Fenster.
Geben Sie dem Servlet einen Namen. In unserem Fall heißt das Servlet
„HelloWorldServlet“.
Klicken Sie auf „Fertig stellen“.
Um das Servlet zu testen müssen sie es auf dem Testserver starten.
Klicken Sie in das Kontextmenü der Servletdatei und wählen Sie „Auf dem
Server ausführen“.
Der Quellcode des Servlets :
import
import
import
public
javax.servlet.http.HttpServlet;
javax.servlet.*;
java.io.*;
class FirstServlet extends HttpServlet {
//----------------------------doGet-Methode --------------------------------public void doGet(
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException
{
//hier wird der MIME type der Antwort festgelegt
response.setContentType("text/html");
//beziehen von out
PrintWriter out = response.getWriter();
// HTML Ausgabe für den Client
out.println("<html>");
out.println("<head><title>First
Servlet</title></head>");
out.println("<body>");
out.println("<h1>Hello World</h1>");
out.println("</body>");
// close writer
6
Um eine erstellte Webapplikation zu testen muss zuerst ein Testserver konfiguriert
und zugeordnet werden.
Dazu erstellen Sie erst ein Serverprojekt, in dem dann ein Serverexemplar erstellt
und konfiguriert wird.
Das Serverprojekt dient zur Ablage aller Informationen zu den erstellten Servern.
4.2.5 Erstellen des Serverprojektes
Klicken Sie in Datei/Neu/Serverprojekt.
Geben Sie einen Projektnamen ein. In unserem Beispiel haben wir den Namen
Testserver1 verwendet. Klicken Sie auf „Fertig stellen“. Schon haben Sie
ein Serverprojekt erstellt.
4.2.5.1
Erstellen einer Serverinstanz
Klicken Sie in der Symbolleiste auf das Symbol Serverexemplar erstellen.
!
7
Geben Sie den Namen der neuen Serverinstanz ein. In unserem Beispiel ist das
„Exemplar1“. Die Informationen hierzu werden im Ordner TestServer1 des
zuvor erstellten Projektes abgelegt.
Anschließend wählen Sie ein Exemplartyp aus. Wir haben uns für die WebSphere
Testumgebung entschieden.
Um die Portadresse anzugeben klicken Sie auf weiter, geben den Port an unter der
der HTTP-Server erreichbar ist und klicken Sie dann auf „Fertig Stellen“. Der
Port ist standardmäßig mit 8080 vorbelegt.
Applikation zuordnen
Im Fenster Serverkonfiguration können Sie im Kontextmenü der Konfiguration ein
Projekt zuordnen. Wählen Sie dazu das Projekt unter „Projekt
hinzufügen“ aus.
Wenn Sie nun „Ausführen auf Server“ innerhalb der Web-Perspektive wählen,
wird der Server im Debug Modus gestartet. Im rechten unteren Fenster, können Sie
den Server aber auch manuell starten. Dazu müssen Sie auf den Kartenreiter
„Server“.
Debug Modus
Starten des Servers im Debug Modus. Wenn Sie in ihrem Quelltext
Unterbrechungspunkte gesetzt haben, wird der Debugger aktiv, sobald er ihn erreicht
hat.
Start
Normales Starten des Servers. Unterbrechungspunkte finden keine Beachtung.
Wenn Sie die Applikation keiner Serverkonfiguration zuordnen, wird in der Web
Perspektive automatisch eine neue Serverinstanz erzeugt. Die zugehörige
Konfiguration heißt dann Websphere Administrative Domain und weist die
Applikation dem Server zu.
5
Erstellen einer JavaServerPage
8
5.1
Was ist eine JavaServerPage ?
Im vorherigen Kapitel haben wir bereits eine Möglichkeit zur Erstellung dynamisch
erzeugter HTML Seiten besprochen. In diesem Kapitel wollen wir ihnen nun eine
Erweiterung des Servlet API vorstellen, die JavaServerPages.
JavaServerPages stellen keine alternative Technologie gegenüber Servlets dar, in
der Tat verbirgt sich hinter jeder *.jsp Datei ein Servlet an das alle Anfragen eines
Clients weitergeleitet werden. Dabei wird bei einer Anfrage an eine JavaServerPage
geprüft ob der angeforderte Quellcode aktuell schon übersetzt wurde. Ist dies nicht
der Fall, so wird ein Servlet generiert, das eine Ausgabe gemäß den Angaben in der
JSP Quelltextdatei liefert.
!
!
"
#
$"
! % &
! % &
! % &
$"
*
$"
*
'%
+
'%(
#
)
'%(
#
)
(
#
)
'%
!
!
"#
$ %&
Die Übersetzung übernimmt dabei eine Ablaufumgeung für JSP´s, die JSP Engine
(JSP Container) genannt wird. Der JSP Container ist ein Teil dessen, was bei
allgemeinerer Betrachtung als Webcontainer bezeichnet wird.
9
5.2
Worin unterscheiden sich Servlets und JavaServerPages ?
Werden bei einem Servlet die Designelemente (HTML Tags) als „out.print“Anweisungen im Java Quelltext erstellt, so ist bei JavaServerPages genau das
Gegenteil der Fall. JavaServerPages erscheinen auf den ersten Blick wie Quellcode
für statische Webseiten mit HTML Elementen. Der Code zum Erstellen dynamischer
Inhalte wird entweder als Java Quelltext und / oder benutzerdefinierten Tags mittels
spezieller HTML Anweisungen in den HTML Code eingebettet. Die folgenden drei
Arten der Einbindung von Java Funktionalität bieten JavaServerPages :
• <%...[Java Code]...%>
das Einfügen von Scriptlets ist die einfachste Art Java Quelltext in eine JSP
einzubinden. Wir wollen uns im Rahmen dieser Dokumetation auf diese Art
der JSP Erstellung beschränken, da sie zur Erläuterung der Vorgehensweise
bei der Erstellung von JSP´s mit Hilfe des WebSphere Studio Application
Developers™ völlig ausreichend ist.
• <%@ include file = “relativeURL” %>
und
• <jsp:actionName>
sind Aufrufe im HTML Code für Direktiven bzw. Aktionen. Direktiven- und
Aktionsaufrufe werden im Rahmen des Einsatzes von benutzerdefinierten
Tags benutzt.
Bei umfangreichen Webprojekten kann bei der Verwendung von Servlets zur
Erstellung dynamischer Webseiten schnell zur Unübersichtlichkeit des Codes
kommen, da Java Elemente mit HTML Code vermischt wird.
Überdies hinaus wäre die (angestrebte) Trennung der Arbeitsbereiche von
Webdesignern und Programmierern nicht gewährleistet.
Würde man bei der Generierung dynamischer HTML Seiten mittels JSP´s nur über
die erstgenannte Alternative verfügen, so hätte man betreffs der Übersichtlichkeit
gegenüber Servlets keine Verbesserung erreicht. Durch den Einsatz von
benutzerdefinierten Tags allerdings kann eine strikte Trennung von Design und
Funktionalität erreicht werden. Mit Hilfe von Tags und deren Befehlen „directive“
und „action“ kann ausgelagerter Java Quellcode als spezieller HTML Tag in einen
HTML Quelltext eingebunden werden.
,
1
/
%
-
.
%0
/
%
!
/
0
+
2
%0
! %
3% 4
#
)
! !
/
#
!
%0 #
)
2
'(
)
$ %&
10
5.3
Erstellen einer JavaServerPage „FirstJSP“
mit Hilfe des WebSphere Studio Application Developers™
Zum Erstellen einer JavaServerPage mittels des WebSphere Studio Application
Developers™ werden wir das vorab erstellte und bekannte Webprojekt verwenden.
JavaServerPages können nur im Rahmen eines Webprojektes erstellt werden. Sollte
noch kein Webprojekt erstellt sein, müssen die entsprechenden Schritte vorab
durchgeführt werden.
Ist das Webprojekt erstellt, so wechseln sie zur Webperspektive. In der Symbolleiste
wird durch Mausklick auf das Symbol „Neue JavaServerPage erstellen“ oder
über den Menüeintrag „Datei“..“Neu“..“Andere“ ein Assistent zur Erstellung
von JSP´s gestartet.
JSP Datei erstellen
*
+
$%
11
Der Assistent verlangt die Angabe eines gültigen Ordners (die Datei kann nur im
Ordner „webApplication“ eines Webprojektes angelegt werden) und einen
Dateinamen. Optional kann der Pfad zur einer Formatvorlagedatei (*.css)
eingegeben werden.
Nachdem alles korrekt eingegeben wurde startet die Workbench die erstellte JSP
Datei im HTML Editor.
Um JSP spezifische Elemente in die JSP einzufügen oder bestehende zu editieren
bietet der WebSphere Studio Application Developer™ unter dem Menüpunkt „JSP“
weitere Assistenten an. Zum bequemen Einfügen von Scriptelementen öffnet sich
beispielsweise der Scripteditor.
Um eine bestehende JSP zu modifizieren wird die zu editierende Datei im Navigator
per Doppelklick geöffnet.
Die erstellte JSP Datei kann lokal auf dem im Application Developer integrierten
Server gestartet werden, indem per rechtem Mausklick auf die auszuführende JSP
im Kontextmenü der Eintrag „Auf Server ausführen“.
$%
,
12
6
Enterprise Java Beans
Enterprise Java Beans (EJB) sind spezielle Objekte in einer speziellen Umgebung.
Für ihre Klassen gelten besondere Regeln. Sie haben beispielsweise keine
statischen Methoden und keine Konstruktoren. Sie dürfen keine Threads erzeugen
und sie dürfen das Java Schlüsselwort "synchronized" nicht verwenden.
Enterprise Java Beans müssen vorgegebene Interfaces implementieren, sie müssen
zusätzlich über bestimmte Methoden verfügen und sie müssen eine Reihe weiterer
Konventionen beachten. Sie kommunizieren mit ihrer Umgebung über ein
festgelegtes Schema - also vermittels einer Menge von verabredeten Regeln. Diese
Umgebung wird Container genannt. Enterprise Java Beans sind mit einer
aufwändigen Containertechnik verbunden. Das macht sie schwierig für den Anfänger
aber auch extrem leistungsfähig. Persistenz, Transaktionsmanagement, Concurrency
und Security gehören zu den wichtigsten Leistungen des EJB-Containers. Der
Programmierer muss diese Dienste nicht abrufen. Sie werden vom Container
automatisch erbracht. Die Dienste des EJB-Containers werden über den
Deployment-Deskriptor angesprochen. Java Beans sind Komponenten die auf der
Serverseite ablaufen. Sie können dynamisch in eine Anwendung geladen werden
und ermöglichen Interaktionen zwischen Java Applets. Das bedeutet, das die
Unternehmenslogik nicht beim Klienten sondern auf dem Server untergebracht ist.
Sie sind durch ihren objektorientierten Aufbau geeignet Unternehmensanwendungen
verteilt ablaufen zu lassen. Sie werden unterschieden in:
•
•
•
Session Beans
Entity Beans
Message Driven Beans
13
6.1 Implementierung einer Bean die Aktienkurse aufruft
1. Schritt
1. Den WSAD öffnen
2. Auf Datei\Neu\Andere
3. Weiter
%
2. Schritt
,
1. Auf Web\Webprojekt
2. Weiter
%
,
14
3. Schritt
1. Projektnamen vergeben
2. Weiter
%
4. Schritt
,
1. Nichts verändern
2. Weiter
%
,
15
5. Schritt
1. Auf Bibliotheken
2. Externe JARs hinzufügen
-$
3. Die JAR Datei aussuchen (in unserem Beispiel Xerces.jar)
"
+.
4. Fertig stellen
16
In der Navigatorsicht der Web-Perspektive ist nun das neue Projekt zu sehen.
'/
Der nächste Schritt ist der Import der Bean.
6. Schritt
In das Web-Projekt gehen und den Ordner Source markieren
1. Dann Datei\Importieren
*0
1
2
17
7. Schritt
1. Dateisystem auswählen
2. Weiter
3
+
8. Schritt
1. Auf Verzeichnis Durchsuchen
2. Bean auswählen
3. Weiter
&
+.
18
9. Schritt
1. Achtung!
Erst auf der linken Seite einmal anklicken und dann auf der rechten
Seite den Bean markieren.
2. Danach auf Fertig stellen.
3
2
10. Schritt
Wenn alles geklappt hat, bietet sich diese Navigatorsicht.
Die Java Datei wurde in den Source-Ordner importiert. Der WSAD kompiliert
automatisch und legt die class Datei in den Ordner classes.
/
19
11. Schritt
Als nächstes muss ein wsdl Dokument erstellt werden.
1.
2.
3.
4.
In der Webansicht den Projektnamen markieren.
Auf Datei\Neu\Andere
Webservice\Webservice
Weiter
+
12. Schritt
Im Feld Webservicetyp „Java-Bean-Webservice“ einstellen
Häkchen nicht vergessen
Anmerkung : Der vergessene Haken „Datei ohne Warnung
überschreiben“ bewirkt auf alle Fälle eine Fehlermeldung bei der
Ausführung auf dem Testserver.
Weiter
/2
20
13. Schritt
1. Hier auf Datei durchsuchen und den Bean *.java importieren.
2. Weiter
-0
2
14. Schritt
Die nächsten Fenster sind nur noch zur Überprüfung.
"0
4
21
15. Schritt
Hier nicht vergessen Java zu XML zu markieren.
'5
+
16. Schritt
1. Weiter
*67 4
22
17. Schritt
1.Weiter
% )78#
18. Schritt
1. Weiter
6
23
19. Schritt
1. Weiter
0
8#
20. Schritt
1. Fertig stellen
%
4
24
21. Schritt
Wenn alles richtig ist erscheint die Web Anwendung.
6
0 +
25
6.2 Fehlermeldungen beim Aufrufen des Testservers:
Der vergessene Haken „Datei ohne Warnung überschreiben“ bewirkt auf
alle Fälle eine Fehlermeldung bei der Ausführung auf dem Testserver.
Wenn die Fehlermeldung „DefaultEAR“ erscheint, liegt es daran, das in der
DefaultEAR\modulemaps noch alte gelöschte Projekte vorhanden sind. Nachdem
herauslöschen der alten Anweisungen lief der Testserver an. Vielleicht sollte für
jedes Projekt ein eigenes *EAR Verzeichnis erstellt werden.
Vor dem Löschen der Zeilen
Nachdem Löschen der Zeilen
<?xml version="1.0" encoding="UTF-8"?>
<modulemap:EARProjectMap xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:modulemap="modulemap.xmi"
xmlns:application="application.xmi" xmi:id="EARProjectMap_1">
<mappings xmi:id="ModuleMapping_5" projectName="FreiWaehlbarerName">
<module xmi:type="application:WebModule" href="METAINF/application.xml#WebModule_3"/>
</mappings>
</modulemap:EARProjectMap>
Es wurde festgestellt, das die Nummer (in diesem Fall “id=ModuleMapping_5) des
Beans nicht verändert werden darf.
26
Herunterladen