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

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/