7 Deployment Descriptor

Werbung
7
Deployment Descriptor
7.1 Einführung
Heutige Webapplikationen beinhalten verschiedene Komponenten. Hier sind vor
allem Servlets, Beans, JSP´s oder HTML – Seiten zu nennen, die in einem Web
Container untergebracht sind. Der Deployment Descriptor beschreibt wie die
Komponenten angesprochen werden und aus welchen Bestandteilen der Web
Container besteht. Jede Web Applikation hat einen eigenen Deployment
Descriptor. Der Deployment Descriptor ist eine Textdatei die nach der Extensibel
Markup Language ( xml ) aufgebaut ist und „web.xml“ heißt.
Mit dem Deployment Descriptor können unter anderem auch Servlets konfiguriert
werden. Das heißt, es können für ein Servlet auch mehrere Namen vergeben
werden. Es ist auch möglich Parameter dafür festzulegen und mit welchen Werten
es initialisiert werden kann. Auch der Ladevorgang des Servlets kann festgelegt
werden. Der Vorteil des Deployment Descriptors ist also die nachträgliche
Änderung von Parametern und Initialisierungswerten ohne das der Java Quellcode
überarbeitet werden muss.
1
7.2 Beispiel eines Bean Descriptors
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app id="WebApp">
<display-name>WebProjekt</display-name>
<servlet>
<servlet-name>rpcrouter</servlet-name>
<display-name>Apache-SOAP RPC Router</display-name>
<description>no description</description>
<servlet-class>com.ibm.soap.server.http.WASRPCRouterServlet</servletclass>
<init-param>
<param-name>faultListener</param-name>
<param-value>org.apache.soap.server.DOMFaultListener</paramvalue>
</init-param>
</servlet>
<servlet>
<servlet-name>messagerouter</servlet-name>
<display-name>Apache-SOAP Message Router</display-name>
<description>no description</description>
<servletclass>com.ibm.soap.server.http.WASMessageRouterServlet</servlet-class>
<init-param>
<param-name>faultListener</param-name>
<param-value>org.apache.soap.server.DOMFaultListener</paramvalue>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>rpcrouter</servlet-name>
<url-pattern>servlet/rpcrouter</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>messagerouter</servlet-name>
<url-pattern>servlet/messagerouter</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
Dieser Bean Descriptor enthält Informationen über die Enterprise Java Bean
2
(EJB)zum Beispiel:
•
•
•
•
•
•
•
Name des EJB
Name der Bean Klassen
Name der Schnittstelle
Assoziationen
Verbindungen zu Datenbanken
Transaktionsverhalten
Informationen über Laufzeitverhalten
Der Deployment Descriptor wird vom Applikation Assembler und/ oder dem Bean
Deployer erstellt. Er wird automatisch der Applikation und dem Web Container
angepasst. Der Entwickler legt nur die Struktur der EJB´s im Deployment
Descriptor fest.
3
8
Erstellen einer Webseite mit Datenbankzugriff
Moderne Unternehmenswebanwendungen kommen nur in den seltensten Fällen
ohne komplexe Datenhaltung aus. Mittel der Wahl zur Datenorganisation und
Datenbereitstellung sind heutzutage relationale Datenbanksysteme. Das
Datenbanksystem des WebSphere Studio Application Developer™ ist das IBM™
eigene DB2™.
Grundsätzlich ist mit dem WebSphere Studio Application Developer™ aber der
Zugriff auf jedes beliebige Datenbanksystem möglich, sofern ein Open DataBase
Connectivity (ODBC) Treiber zur Verfügung steht.
8.1
Erstellen des Java Quelltextes mit Datenbankzugriff
Soll von einem Servlet oder einer JavaServerPage aus auf eine Datenbank
zugegriffen werden muß der Quelltext in der Java Perspektive erstellt werden. Der
Editor der Java Perspektive bietet u.a die üblichen unterstützenden Hilfsmittel wie
Syntaxhighlighting und Auto-Textvervollständigung. Das bedeutet, dass der
Entwickler über die in Java verfügbaren Mittel zur Verbindung zu Datenbanken und
deren Manipulation wissen muss und mit ihnen umgehen kann um eine Java Seite
zu erstellen, die auf Datenbanken zugreift.
Die Stärke des WebSphere Studio Application Developers™ liegt also nicht bei der
Erstellung des Quelltextes sondern bei der Erstellung, Verwaltung und Bearbeitung
der Datenbanken.
Der Gedanke dahinter ist, den Java Programmierer von der Last zu befreien auch
die Datenbanksprache SQL (Structured Query Language) zu beherrschen. Hierzu
bietet der WebSphere Studio Application Developer™ eigens eine eigene
Perspektive: die Daten Perspektive.
Im Rahmen unseres Projektes wollen wir aber lediglich eine statische Webseite in
einem bestehenden Webprojekt erstellen die mittels einer einfachen „SELECT *
DBName;“ Anweisung eine kleine Datenbank ausliest und den Inhalt ausgibt.
4
1. Erstellen einer Beispiel Datenbank
In der Daten Perspektive wird über „Datei“..“Neu“..“Andere“ ein
Assistent zur Erstellung einer neuen Datenbank aufgerufen. Nach einander
müssen dann in gleicher Weise noch ein Datenbankschema und schliesslich
die eigentliche Tabelle erzeugt werden. Im Assistenten zur
Tabellenerstellung können in sehr einfacher Weise Spalten erzeugt, Namen
vergeben und Primär/Fremdschlüssel angelegt werden. Unsere
Testdatenbank verfügt nur über zwei Integerspalten ohne jegliche Schlüssel
oder Indices. In der Datenperspektive können alle festgelegten Namen,
Pfade und sogar Schlüssel, usw. nachträglich verändert werden.
Diese Funktionalität bietet der WebSphere Studio Application Developer™
allerdings nur wenn das Datenbanksystem IBM™ DB2 implementiert wurde.
Die Beispielerstellung spiegelt aber das Zugreifen auf eine vorhandene
Datenbank, da dies der wohl häufiger gewählte Weg sein wird, auf dem eine
Webpräsenz erstellt wird.
Dazu wurde vorab, unabhängig vom WebSphere Studio Application
Developer™ in DB2 eine Testdatenbank mit oben beschriebener Tabelle
generiert.
5
2. Erstellen einer Verbindung zur Datenbank
Durch Rechtsklick in der DB-Browser Sicht erscheint ein Kontextmenü mit
dem Unterpunkt „Neue Verbindung erstellen...“. Hier muß die
Datenbank benannt und der korrekte Benutzername inklusive Passwort
eingetragen werden. Optional kann noch ein Verbindungsname angegeben
werden, in unserem Beispiel „TestVerbindung1“. Nach erfolgreichem
Abschluss des Assistenten erscheint sodann eine Eintragung im DBBrowserfenster mit dem Namen der erstellten DBverbindung.
6
3. Erstellen der Webseite
oder über
In der geöffneten Webperspektive wird über das Symbol
„Datei“..“Neu“ ein Assistent geöffnet, der sie bei der Erstellung der
Webseite mit Datenbankzugriff unterstützt.
Auf der ersten Seite des Assistenten muss der Zielordner der
„webapplication“ Ordner des bestehenden Webprojektes sein. Soll eine
Fehlerseite oder eine *.css Datei zur Formatvorlage verwendet werden, so
können sie hier ausgewählt werden. Wir verwenden für das Modell die
vorgegebene View Bean und speichern die Ergebnisse in „Anfordern“.
Die nächste Seite des Assistenten muss übersprungen werden da noch
keine SQL-Anweisung erstellt wurde. Auf der folgenden Seite bietet der
Assistent eine „Geführte Erstellung einer SQL Anweisung“ an. Als
Datenbankmodell wählen wir die vorab erstellte Datenbank aus.Die folgende
Seite bietet eine sehr komfortable Hilfe beim Erstellen von SQL
Anweisungen. In unserer Beispielseite wollen wir uns aber auf einen
einfachen „SELECT * „ Befehl beschränken. Mit der „Weiter“ Taste
wechseln wir auf die nächste Seite, die die eben erstellte SQL Anweisung im
Quelltext anzeigt und die Möglichkeit bietet den Quelltext zu prüfen,
eventuell zu bearbeiten und schließlich zu Textzwecken ausführen zu
lassen.
! "
Die nächste Seite bietet eine Vorabansicht der zu erzeugenden Webseiten
und wiederum die Möglichkeit diese zu editieren. Je nach Auswahl auf der
ersten Assistentenseite werden zum einfachen Datenbankzugriff drei
Dateien erstellt: Die *InputForm.html, auf der anhand einer
Nutzereingabe die gewünschten Daten selektiert werden, eine
*MasterView.jsp, sowie eine *DetailView.jsp, die beide für die
Darstellung der abgefragten Daten verantwortlich sind. Die * stehen für frei
wählbare Präfixe, die auf der abschließenden Seite des Assistenten
eingegeben werden können.
7
Nachdem nun die Seite und die SQL Anweisung erstellt wurden gibt ihnen
der Assistent noch die Möglichkeit einen Frontcontroller zu erstellen oder
bestehende auszuwählen und weitere View-Beans anzulegen.
Zum Schluss kann noch, wie bereits erwähnt, ein Präfix vorgestellt werden
und dann die Webseiten fertiggestellt werden.
#$
#'
% &
% &
8
9
Schlussbetrachtung
9.1
Überblick
Seit Mitte der neunziger Jahre die ersten Dot.com Firmen das Internet als virtuellen
Marktplatz entdeckten und die Fähigkeit des Netzes nutzten, ihre Waren oder
Dienstleistungen in einem ungleich größeren geographischen Gebiet zu vertreiben
als dies vorher möglich war, ist die Anzahl der Unternehmen, die ihre Produkte
über das Internet anbieten um ein Vielfaches gestiegen.
In Wahrheit kommt heute keine größere Unternehmung ohne eine umfangreiche
Internetpräsenz aus, sei es um Produkte zu verkaufen, sie zu bewerben, KundenSupport zu gewährleisten oder aus mannigfaltigen anderen Gründen.
Diese Webpräsenzen unterscheiden sich von den Internetauftritten der ersten
Stunde wie ein Dia von einem Film; waren damals, aufgrund fehlender Technik, die
Seiten statisch wird heute der Online-Kunde mit personalisierten Angeboten
umworben.
Als vor einigen Jahren IBM™ das Schlagwort „e-business“ durch eine
großangelegte Werbekampagne in das Bewusstsein der Menschen brachte hat
sich das Aufgabenfeld der vormaligen reinen Internetpräsenz erheblich
ausgeweitet. Unter „e-business“ verstehen wir heute die Integration von
Interessenten und Kunden sowie Lieferanten und Geschäftspartnern aber auch
eigenen Mitarbeitern und externe wie interne Geschäftsprozesse in IT-Systeme
unter Einsatz von Internettechnologie.
Um diesen Anforderungen gerecht zu werden entwickelte SUN™ mit der Version
1.2 der Java-Spezifikation u.a. die Java 2 Enterprise Edition. Die J2EE umfasst
außer den Elementen der Java 2 Standard Edition viele zusätzliche Schnittstellen
für den Einsatz in Mehrschichtarchitekturen (wie z.B. komplexe Webanwendungen)
und Serveranwendungen.
Microsoft™ brachte mittlerweile mit „.Net“ eine Konkurrenz-Plattform auf den Markt,
die diese Funktionalität auf Microsoft™ eigene Techniken, wie Active Server Pages
oder C# anwendet.
Um diese mittlerweile, unter Umständen, äußerst komplexen Unternehmensanwendungen erstellen und warten zu können bedarf es eines Frameworks mit
dem hoch entwickelte B2B (Business to Business) oder B2C (Business to
Consumer) Applikation entworfen und umgesetzt werden können.
Im Rahmen dieser Dokumentation befassten wir uns mit einem dieser Integrated
Development Enviroments (IDE), dem WebSphere Studio Application Developer™.
Am Anfang der Beschäftigung mit dem WebSphere Studio Application Developer™
stand die Auseinandersetzung mit der Oberfläche, der Workbench, der
Perspektiven sowie des internen Ablaufs bei der Erstellung eines
Unternehmensprojektes.
Im weiteren Verlauf erstellten wir diverse Projekte, allen voran ein Webprojekt in
dem die Anfertigung je eines Servlets, einer JavaServerPage und einer Webseite
mit Datenbankzugriff sowie der Einsatz einer Enterprise Java Beans durchgeführt
wurden
9
9.2
Fazit
Dem erfahrenen Entwickler bietet der WebSphere Studio Application Developer™
von IBM™ ein umfangreich ausgestattetes Entwicklungswerkzeug an die Hand.
Aber auch ein vergleichsweise ungeübter Nutzer findet sich nach anfänglichen
Schwierigkeiten, mit der internen Verwaltungsstruktur (Projekte, Perspektiven),
recht schnell zurecht um einfache bis mittelschwere Applikationen zu entwerfen.
Positiv anzumerken ist die Online Hilfe, die bis auf wenige Ausnahmen mit
kompetentem Rat zur Seite steht, und die durchdachte Ergonomie der Oberfläche.
Die bereitgestellten Assistenten bieten zusätzlich Hilfe bei auszuwählenden
Objekten, was zum Beispiel die Ablage einer Datei in einen falschen Ordner
verhindert.
Insgesamt überwiegt ein positiver Eindruck und die Gewissheit, nach gründlicher
Einarbeitung ein mächtiges Werkzeug zur Erstellung komplexer Unternehmensanwendung zur Verfügung zu haben.
9.3
Ausblick
Auf dem Markt befinden sich zur Zeit einige ernstzunehmende Konkurrenten für
den WebSphere Studio Application Developer™ darunter z. B. zwei Produkte aus
dem Hause Rational™ (je eine für Java und eine für .Net), die Weiterentwicklung
des bekannten JBuilders , das Enterprise Studio for Java 3, von Borland™, die
Oracle™ Developer Suite und natürlich der Hauptkonkurrent Visual Studio .Net
Enterprise Architect Edition von Microsoft™. Trotz schlechter Benchmarks, wenn
auch in umstrittenen Tests erzielt (Report der Butler Group – Vol. 1, Juni 2002 und
The Middleware Company) im Bereich Technische Funktionen, verwendete
Architekturen und strategischer Hintergrund der Werkzeuge und ihrer Hersteller,
sowie Performanz der zugehörigen Server (nur .Net-Server, WebSphere
Application Server und BEA™ Logic) kann sich der WebSphere Studio Application
Developer™ noch mit an der Spitze der bekanntesten und meist benutzten IDE´s
halten. Vorteile des WebSphere Studio Application Developer™ gegenüber .Net
sind derzeit noch die offenere Architektur und die Sicherheitslücken bei .Net. Sollte
sich aber der recht schnelle Aufstieg von .Net fortsetzen wird es schwierig werden
diese Spitzenposition am Markt zu halten.
Heidelberg / Mannheim / Ludwigshafen / Leipzig
Angelika Berg
Heiko Petzold
Joachim Schmidt
10
Sept. bis Nov. 2002
Literaturverzeichnis
Stefan Schäffer, Walter Schilder: Enteprise Java mit IBM Websphere
Addison-Wesley Verlag, 2002
http://ibm.de
20.09.2002
11
Abbildungsverzeichnis
Abbildung 1 Auswahl .......................................................................................................................... 9
Abbildung 2 Projektnamensvergabe.................................................................................................... 9
Abbildung 3 Java-Perspektive ........................................................................................................... 11
Abbildung 4 Menü-& Symbolleiste................................................................................................... 15
Abbildung 5 Symbole in der Sicht Tasks .......................................................................................... 16
Abbildung 6 Menü-& Symbolleiste................................................................................................... 17
Abbildung 7 Serverexemplare ........................................................................................................... 19
Abbildung 8 Menü-& Symbolleiste................................................................................................... 20
Abbildung 9 Menü-& Symbolleiste................................................................................................... 23
Abbildung 10 Link Sicht ................................................................................................................... 26
Abbildung 11 Assistent Webprojekt.................................................................................................. 27
Abbildung 12 Assistent Webprojekt.................................................................................................. 28
Abbildung 13 Servlet Assistent ......................................................................................................... 31
Abbildung 14 Serverkonfiguration Assistent .................................................................................... 32
Abbildung 15 Eigenschaften für Server............................................................................................. 32
Abbildung 16 Übersicht der angelegten Server ................................................................................. 33
Abbildung 17 Generieren eines Servlets aus einer JSP Datei............................................................ 34
Abbildung 18 Quelltext einer einfachen JSP Datei ........................................................................... 35
Abbildung 19 Auswahldialog JSP ..................................................................................................... 36
Abbildung 20 Scripteditor ................................................................................................................. 37
Abbildung 21 Ausgabe der JSP aus Abb. 2 ....................................................................................... 37
Abbildung 22 Projekterstellung 1. Schritt ......................................................................................... 39
Abbildung 23 Projekterstellung 2. Schritt ......................................................................................... 39
Abbildung 24 Projekterstellung 3. Schritt ......................................................................................... 40
Abbildung 25 Projekterstellung 4. Schritt ......................................................................................... 40
Abbildung 26 Java Einstellungen ...................................................................................................... 41
Abbildung 27 Archiv auswählen ....................................................................................................... 41
Abbildung 28 Navigator Sicht ........................................................................................................... 42
Abbildung 29 Bean Import ................................................................................................................ 42
Abbildung 30 Resourcenauswahl ...................................................................................................... 43
Abbildung 31 Datei auswählen.......................................................................................................... 43
Abbildung 32 Resourcen importieren................................................................................................ 44
Abbildung 33 Navigatoransicht ......................................................................................................... 44
Abbildung 34 Webservice Auswahl .................................................................................................. 45
Abbildung 35 Namensvergabe .......................................................................................................... 45
Abbildung 36 Beanimport ................................................................................................................. 46
Abbildung 37 Beankennzeichnung.................................................................................................... 46
Abbildung 38 Methodenauswahl ....................................................................................................... 47
Abbildung 39 Typzuordnung............................................................................................................. 47
Abbildung 40 Proxy-Generierung ..................................................................................................... 48
Abbildung 41 Testclient .................................................................................................................... 48
Abbildung 42 Beispiel-Generieren .................................................................................................... 49
Abbildung 43 Publizierung................................................................................................................ 49
Abbildung 44 Testserver.................................................................................................................... 50
Abbildung 45 Browseransicht ........................................................................................................... 50
Abbildung 46 Descriptoransicht ........................................................................................................ 52
Abbildung 47 Erstellen der TestDB................................................................................................... 56
Abbildung 48 Ausgabe der DB.......................................................................................................... 57
Abbildung 49 Kontrolle der SQL Anweisung(en)............................................................................. 58
Abbildung 50 Ansicht Eingabeformular............................................................................................ 59
Abbildung 51 Ansicht Ausgabeformular........................................................................................... 59
12
EINLEITUNG:
Was ist eigentlich Websphere?
3
3
1
Installation
1.1
Systemvoraussetzungen
1.1.1
Hardware Test
1.2
Komponenten
1.3
Installation
1.4
Probleme
4
4
4
5
5
6
2
Der WebSphere Application Developer
7
2.1
Funktionsweise des WebSphere Application Developer™
7
2.1.1
Projekte
7
3.1
Was sind Perspektiven und Sichten?
10
3.2
Arbeiten mit Perspektiven und Sichten
12
3.3
Web-Perspektive
13
3.3.1
Sichten
13
3.3.2
Menü und Symbolleiste
15
3.4
Java-Perspektive
15
3.4.1
Sichten
15
3.4.2
Menü und Symbolleiste
17
3.5
J2EE-Perspektive
17
3.5.1
Sichten
17
3.5.2
Menü und Symbolleiste
20
3.6
Server-Perspektive
22
3.6.1
Sichten
22
3.6.2
Menü und Symbolleiste
23
3.7
Debug-Perspektive
23
3.7.1
Sichten
23
3.7.2
Menü und Symbolleiste
24
3.8
Daten-Perspektive
24
3.8.1
Sichten
24
3.8.2
Menü und Symbolleiste
25
3.9
Hilfe-Perspektive
25
3.10 Java-Typhierarchie-P. / Plug-in-P. / Profilermittlung-P. / Resource-P. / Scripts-P. /
Team-P. / XML-Perspektive
25
4
Erstellen unseres Webprojektes HellDevelopers
4.2
Arbeitsschritte zum Erstellen des Webprojektes:
4.2.1
Erstellen der „index.html“
4.2.2
Erstellen der Datei „DokuContainer“ mit Frames
4.2.3
Erstellen der restlichen HTML Seiten.
4.2.4
Erstellen des Servlets „FirstServlet“
4.2.4.1 Was ist ein Servlet ?
4.2.4.2 Erstellen des Servlets
4.2.5
Erstellen des Serverprojektes
13
26
27
28
29
29
30
30
31
32
5
Erstellen einer JavaServerPage
5.1
Was ist eine JavaServerPage ?
5.2
Worin unterscheiden sich Servlets und JavaServerPages ?
5.3
Erstellen einer JavaServerPage „FirstJSP“ mit Hilfe des WebSphere Studio
Application Developers™
34
34
35
6
Enterprise Java Beans
6.1 Implementierung einer Bean die Aktienkurse aufruft
6.2 Fehlermeldungen beim Aufrufen des Testservers:
38
39
51
7
Deployment Descriptor
7.1 Einführung
7.2 Beispiel eines Bean Descriptors
52
52
53
8
Erstellen einer Webseite mit Datenbankzugriff
8.1
Erstellen des Java Quelltextes mit Datenbankzugriff
55
55
9
Schlussbetrachtung
9.1
Überblick
9.2
Fazit
9.3
Ausblick
60
60
61
61
36
Literaturverzeichnis
62
Abbildungsverzeichnis
63
14
Herunterladen