Allgemeine Infos
Inhalt:
Installation von Eclipse
Eclipse-Projekte:
Welches Projekt
Eclipse-Projekt ohne Web-Unterstützung erstellen
J2EE.JAR referenzieren
Eclipse-Projekt mit Web-Unterstützung erstellen
Mit einem Projekt arbeiten:
Hinzufügen eines Packages
Hinzufügen der Klassen
Export und Import eines Standard-Java-Projekts
Export und Import eines WebTools-Projekts
Eclipse-Codeformatter
Infos zum Application Server:
Einrichten der FH-Umgebung
Allgemeine Infos zum Application Server
Infos zur Pointbase-Datenbank
Infos zu Application Clients
Installation von Eclipse
- JDK 1.4.2 (http://java.sun.com/) installieren. Aktuell ist 1.4.2_09
- Eclipse 3.1.1 (http://www.eclipse.org/)
- Eclipse-Plugins:
- EMF 2.1.1 (http://www.eclipse.org/emf) als Vorbedingung für WebTools-/VisualEditor).
Wir benötigen SDO- und XSD-Runtime !
- GEF Runtime 3.1.1 (http://www.eclipse.org/gef) als Vorbedingung für WebTools-/VisualEditor).
- Der WebTools-Plugin erfordert außerdem die JEM-Runtime 1.1.0.1 . Diese
erhalten wir auch über den Visual-Editor-Plugin 1.1.0.1 (http://www.eclipse.org/vep), den wir
sowieso für Swing-Oberflächen benötigen.
- Jetzt endlich können wir den WebTools-Plugin 1.0M8 (=Milestone Build 8) (
http://www.eclipse.org/webtools) installieren. Der Grund dafür dass wir nicht die Version 0.7.1 verwenden liegt
in einem nervigen Bug mit dem Caching von XML-DTDs (siehe JBoss-Doku).
- Ein fertig gebündeltes Pakt mit Eclipse und allen erforderlichen Plugins gibt es hier:
eclipse3.1.1.zip
Eclipse-Projekte
Welches Projekt ?
Bei Verwendung des SunAppServers würde ich empfehlen die EJB-spezifischen
Komponenten des WebTools-Plugins zu ignorieren und mit einem simplen Java-Projekt zu arbeiten.
Damit können wir alles erledigen was zu tun ist, und wir werden nicht von XDoclet, Serverdefinitionen
und sonstigen WebTools-Hilfen verwirrt.
Die Projekttypen "EJB Project" und "Application Client Project" bieten
uns keine weiteren Vorteile, und die vom WTP-Plugin erzeugten Beans erfordern fast genauso
viel manuelle Nachbearbeitung wie wenn wir sie komplett per Hand erzeugen würden.
Nur ein "Dynamic Web Project" ist sinnvoll da in einem Standard-Java-Projekt Fehler in JSP-Seiten
nur erkennbar sind wenn wir sie gerade im Editor gewählt haben, während alle nicht gewählten
Seiten ihre Fehler vor uns verbergen.
Eclipse-Projekt ohne Web-Unterstützung erstellen
Dieses Projekt können wir verwenden wenn wir nur Java-Klassen verwenden, also EJBs und
Application-Client-Dateien.
Erstellen eines Projekts: Im Menü "File" den Menüpunkt "New" -> "Project" wählen.
Als Typ wird "Java Project" gewählt und der Projektname eingegeben.
Als "Contents" kann man den Default (Workspace) belassen, oder einen eigenen Ordner angeben.
Ich empfehle, die Pfade für Quelldateien und Klassendateien anzupassen, da ansonsten
eine Vermischung "droht". Deshalb den Radiobutton "Create separate Source and output folders"
wählen.
Nach einem Klick auf "Next" gelangen wir in die "Java Settings". Hier sehen wir dass
die Quellen in einem Unterverzeichnis "src" im Projekt liegen, die erzeugten Java-Klassen in
einem Unterverzeichnis "bin".
Wir klicken auf "Finish" und unser Projekt steht.
J2EE.JAR referenzieren
Hier gibt es zwei Vorgehensweisen: Das JAR im Sun-Appserver-Pfad referenzieren, oder es
lokal in das Projekt zu packen. Ich bevorzuge letzteren Weg, weil dadurch auch ein compilieren
ohne installierten App-Server oder auf einem Betriebssystem mit anderen Pfaden möglich ist .
Deshalb wird hier letzteres Vorgehen beschrieben.
Hinweis: falls wir einen der drei oben genannten WTP-Projekttypen verwenden würden könnten
wir einen Server definieren und über diese Definition würde "j2ee.jar" referenziert.
Hinzufügen eines Ordners, in dem später alle abhängigen JARs landen sollen: Rechtsklick auf
das Projekt, "New" -> "Folder" wählen. Als Verzeichnisnamen "lib" angeben.
Importieren von J2EE.JAR in dieses Verzeichnis. Rechtsklick auf das neu erstellte Verzeichnis,
"Import" wählen. Im Dialog "Import" wird als import source "Filesystem" gewählt.
Anschließend zum Verzeichnis "C:\Programme\Sun\AppServer\lib" wechseln. In der Liste rechts
werden alle JARs aufgelistet. Einen Haken vor J2EE.JAR setzen.
Hinzufügen des JARs zu den Projektreferenzen: Rechtsklick auf das Projekt, "Properties" wählen.
Im Bereich "Java Build Path" zur TabPage "Libraries" gehen.
Rechts auf "Add Jars..." klicken.
Der Dialog "JAR Selection" erscheint, der alle lokal im Projekt verfügbaren JARs anbietet.
J2EE.JAR sollte in der Liste der Libraries auftauchen:
Das Ergebnis (nach Hinzufügen der Klassen und Interfaces) sollte so aussehen:
Eclipse-Projekt mit Web-Unterstützung erstellen
Vorbereitung: wir müssen einen J2EE-Server deklarieren. Dazu über "Window" -> "Preferences..."
in die Eclipse-Konfiguration gehen. In der Kategorie "Server" -> "Installed Runtimes" klicken
wir auf "Add".
Der Dialog zum Deklarieren eines Servers öffnet sich. Da der WebTools-Plugin keine Unterstützung
für den SunAppServer mitbringt wählen wir eine "J2EE Runtime Library".
Wir geben dem Gerät einen schönen Namen und wählen das lib-Verzeichnis des AppServer aus.
Das Ergebnis sollte so aussehen (nicht vergessen den Haken vor dem Server zu setzen):
Jetzt legen wir mit dem Projekt los. Über "File" -> "New" -> "Other..." gelangen wir in
den Dialog zum Hinzufügen von beliebigen Elementen. Wir wählen "Web" -> "Dynamic Web Project" aus.
Der Assistent für ein Dynamic Web Project startet. Wir geben dem Projekt einen Namen und klicken
auf "Show Advanced >>". Als unterstützte Modul-Version wählen wir "2.4" (Servlet-Spezifikation).
Der Haken bei "Add module to EAR application" wird entfernt und unser schöner neuer Server
ausgewählt.
Jetzt auf "Finish" klicken.
Die anschließende Abfrage ob wir in die J2EE Perspektive wechseln wollen ignorieren wir.
Das Ergebnis sieht so aus:
Jetzt können wir Bean-Klassen und Interfaces wie im obigen Projekt zufügen.
Alle Java-Dateien/Packages sollten im Verzeichnis "JavaSource" landen, alle statischen Inhalte
wie JSP- und HTML-Dateien in "WebContent" (im Bild markiert). Die Fehlericons bitte ignorieren,
dies lag nur daran dass keine Internetverbindung bestand und deshalb das XML-Schema zu "web.xml"
nicht geladen werden konnte.
Die gesamten JSP-Seiten des Projekts werden jetzt korrekt compiliert und wie alle anderen Java-Fehler
behandelt.
Das Hinzufügen von Bean-Klassen über den Assistenten würde ich nicht empfehlen da dessen Bean-Klassen
eine andere ist und wir die gesamten Standard-Bean-Methoden von Hand zufügen müßten.
WICHTIG: In WebToolsPlugin 1.0M8 hat sich ein Bug eingeschlichen der dafür sorgt dass
das Anlegen eines neuen Projekts mit Unterstützung für den SunAppServer nur dann möglich ist wenn
der Server in der aktuellen Eclipse-Sitzung angelegt wurde. Ist das nicht der Fall dann enthält der
BuildPath des Projekts nicht die JDK/JRE-Klassen (z.B. java.lang.Object
), d.h. das Projekt
ist zu nichts zu gebrauchen. Lösung: Vor dem Anlegen eines Dynamic Web Project die Definition des SunAppServer
löschen und neu anlegen.
Hinzufügen eines Packages
Auf das Project einen Rechtsklick ausführen, "New" -> "Package" wählen. Einen sinnvollen Namen
des Packages angeben.
Hinzufügen der Klassen
Jetzt kann man per Rechtsklick auf das Package die EJB-Klassen und EJB-Interfaces zufügen.
Hinzufügen der Bean-Klasse (zu beachten: die Klasse soll "abstract" sein, außerdem den Haken bei
"Generate Comments" setzen, wir haben schließlich ein Herz für Kommentare):
Hinzufügen des Remote-Interfaces: Rechtsklick auf das Package, "New" -> "Interface" wählen.
Hinzufügen des Home-Interfaces:
Export und Import eines Standard-Java-Projekts
Zum Export des Projekt wählen und per Rechtsklick -> "Export..." in den Export-Dialog gehen.
Als "export destination" wird ein "Archive file" gewählt.
Im Exportdialog müssen wir den Haken vor dem gewünschten Projekt entfernen und setzen
sie dafür vor allen Unterverzeichnissen und den Projektdateien ".classpath" und ".project".
Wichtig ist auch dass die Option "Create only selected directories" gesetzt ist. Ansonsten hätte
die Pfadstruktur in der Zip-Datei eine Ebene zu viel und der Re-Import würde nicht klappen.
Noch ein Ziel wählen. Das wars.
Re-Import:
Wir legen ein neues, leeres Standard-Java-Projekt an (mit den Einstellungen wie im obigen
Beispiel, sprich "source and output folder"). Der Name des Projekts muss nicht der gleiche sein.
Der Rest wird überschrieben.
Rechtsklick auf das neue Projekt, "Import..." wählen. Der Typ ist natürlich wieder "Archive file".
Wir wählen die Export-Datei aus und sind damit eigentlich schon fertig.
Export und Import eines WebTools-Projekts
Funktioniert im Prinzip identisch, nur muss beim Re-Import als Zielprojekt natürlich ein "Dynamic Web Project" angelegt
werden. Alle anderen Schritte sind identisch.
Eclipse-Codeformatter
Einige Empfehlungen für die Konfiguration des Eclipse-Code-Formatters findet sich
hier. (JBoss-Anleitung)
Infos zum Application Server
Einrichten der FH-Umgebung
Bitte beachten !
Eigene Domain und Datenbank
Allgemeine Infos zum Application Server
- Die Logdatei (in die wir mittels der Klassen des Packages
java.util.logging
schreiben) liegt hier: C:\Programme\Sun\AppServer\domains\domain1\logs\server.log.
- Auflisten der Deployed Komponenten:
asadmin list-components --user admin --password XXXXXXXX
- Undeploy einer Application:
asadmin undeploy --user admin --password XXXXXXXX AppName
- Achtung, Bug im Deploytool: Im Fenster "Verify J2EE Compliance" der Application Server Platform Edition 8 2004Q4 Beta
kann man in der Ergebnisliste keine Details zu einer Meldung anzeigen lassen, wenn man vor dem Klick auf OK bei den Radiobuttons
"Display" etwas anderes als "All Results" auswählt ! Wurde die Ergebnisliste erzeugt, kann man zu "Failures only" oder
"Failures and Warnings only" umschalten.
- Achtung, Bug im Deploytool in den Versionen vor 8_1_02_2005Q2: Falls man nach dem Hinzufügen einer Bean in einer TabPage etwas
ändert und direkt auf Speichern klickt, wird die Änderung evtl. nicht erkannt. Deshalb: nach der Änderung
zu ein oder zwei anderen TabPages wechseln und dann erst Speichern. Falls man etwas in einem Textfeld ändert, hilft es wohl
auch, Enter zu drücken (in der Titelleiste des Deploytools sollte "(changed)" erscheinen). Im Fehlerfall landet im Verzeichnis
der EAR-Datei eine Datei "tmpXXXX.jar", die die zu speichernde EAR-Datei enthält.
Zum Überwachen des Serverlogs empfehle ich folgendes kleine Tool (erfordert .NET-Framework 1.1): WinTail.zip
Infos zur Pointbase-Datenbank
Um sich mit Pointbase zu verbinden, muss folgendes Programm gestartet werden:
C:\Programme\Sun\AppServer\pointbase\tools\serveroption\startconsole.bat
Alle Einstellungen auf Default lassen, nur bei Database URL folgendes angeben:
"jdbc:pointbase:embedded:sun-appserv-samples"
Die Tabellen findet man unter dem Schema "PBPUBLIC".
Infos zu Application Clients
Application-Clients werden mit diesem Aufruf gestartet:
C:\Programme\Sun\AppServer\bin\appclient -client MyClientJAR.jar
Nach einiger Suche durch Config-Dateien findet man heraus, dass der Zielserver in folgender Datei
konfiguriert wird:
C:\Programme\Sun\AppServer\domains\domain1\config\sun-acc.xml
Hier kann man bei <target-server> den Hostnamen eintragen, den der AppClient kontakten soll:
<target-server name="localhost" address="localhost" port="3700"/>
Version 1.0.1.0, Stand 01.11.2005
Historie:
1.0.0.0 (22.09.2005): Erstellt
1.0.1.0 (01.11.2005): Infos zum Server-neu-Anlegen bei neuem Projekt