Allerlei zum Praktikum Softwaretechnik - Vertiefung
Last Update: 30.01.2005 (Concurrency-Beispiel weiter überarbeitet (SessionBeans zugefügt, falsche Verwendung
von PessimisticRead korrigiert).
Einrichten der FH-Umgebung
Bitte beachten !
Eigene Domain und Datenbank
Infos zum Application Server
- 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: 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-Datebank
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"/>
Beispiele
Anleitung für Erstellen eines Eclipse-Projekts.
Allgemeins zu den Beispielen:
Einige Beans kommen in mehreren Beispielen vor, z.B. die GeometricModelBean aus dem Stateless-/
Stateful-Beispiel, oder auch diverse Kuchen/Zutat-Beans aus den Entity-Beispielen.
Um Überschneidungen gleicher JNDI-Namen oder Datenbanktabellen zu vermeiden, wurden alle
Beans mit eindeutigen Namespaces, Klassennamen, JNDI-Namen und Schemanamen versehen. Der Nachteil
hierbei ist, dass auch in den eigentlich identischen Webclients der drei Kuchen-Zutat-Beans
minimale Unterschiede im Bezug auf die referenzierten Interfaces herrschen.
Download der Beispiele
Stateless Session Bean
Stateful Session Bean
Achtung, Falle ! Die beiden vorherigen Beispiele können nicht parallel im Container existieren,
da der JNDI-Namen der Bean "GeometricModel" im Default in beiden Applications gleich ist.
Entweder immer nur eine Bean im Container belassen oder von meiner Deploy-Anleitung abweichen und
unterschiedliche, eindeutige JNDI-Namen verwenden. Ganz mutige können auch probieren, ob man aus
dem Stateful-Beispiel heraus die GeometricModel-Bean aus dem Stateless-Beispiel verwenden kann und
deshalb im Stateful-Beispiel diese Bean nicht erneut zu deployen braucht.
Einfache Container Managed Entity Bean
Container Managed Relationship zweiter Entity Beans
CRM zweiter Entity Beans, Primary Keys sind vom Container verwaltet
Das gleiche Beispiel, allerdings Bean Managed
Container Managed n:m-Beziehung
Einfache Message Driven Bean
Beispiel für Sicherheit
JSP-Beispiele
WebSphere-Beispiele:
Stateless-Beispiel für IBM-WebSphere
Stateful-Beispiel für IBM-WebSphere
KuchenSingle-Beispiel (Entity-Bean) für IBM-WebSphere
KuchenZutat-Beispiel (Entity-Bean) für IBM-WebSphere
N:M-Beispiel (Entity-Bean) für IBM-WebSphere
UserRegistry-Beispiel für IBM-WebSphere
Concurrency-Beispiel (Access Intents) für IBM-WebSphere
Links
Lomboz-Plugin (JSP-Editor und EJB-Plugin für JBoss): http://www.objectlearn.com
Übersicht über die Jakarta-Taglibs (der Link führt direkt zur Seite der Standard-Taglib, aber über die Menüleiste links erreicht man
mit einem Klick auch die anderen Taglibs):
http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html
Zum Download findet man die Taglibs z.B. unter
http://apache.easy-webs.de/jakarta/taglibs
Die Dokumentationen dazu findet man z.B. im J2EE-Tutorial von Sun, oder auch unter
http://java.sun.com/products/jsp/jstl/ (JSTL 1.1-Spezifikation)
bzw. die JSTL 1.0-Spezifikation unter http://jcp.org/aboutJava/communityprocess/final/jsr052/
Apache-Commons-FileUpload-Projekt: http://jakarta.apache.org/commons/fileupload/