Enterprise JavaBeans (mit JBoss)

Größe: px
Ab Seite anzeigen:

Download "Enterprise JavaBeans (mit JBoss)"

Transkript

1 Enterprise JavaBeans (mit JBoss) Christian Hülsmeier Matrikelnummer: Ausarbeitung zum Vortrag vom Sommersemester 2004 Seminar: Komponentenorientierte Softwareentwicklung und Hypermedia Dozent: Prof. Dr. Frank Thiesing Fachhochschule Dortmund Fachbereich Informatik

2 Inhaltsverzeichnis 1 Einleitung Enterprise JavaBeans Was ist Enterprise JavaBeans? Architektur Der Applikationsserver Der EJB-Container Der Persistenz-Manager Typen von Enterprise-Beans Bestandteile einer Enterprise-Bean Entity-Bean Was ist eine Entity-Bean? Persistenz Beziehungen zwischen Entitäten EJB Query Language Session-Bean Was ist eine Session-Bean? Zustandslose Session-Beans Zustandsbehaftete Session-Beans Deployment-Deskriptor Client-Anwendungen JBoss Was ist der JBoss Application Server? Aufbau des JBoss Application Server Installation des JBoss Application Server Konfiguration des JBoss Application Server Deployen von Enterprise-Beans XDoclet...20

3 5 Fallbeispiel Entwicklungsumgebung MySQL-Datenbank JBoss Application Server Ant-Skript Enterprise JavaBeans Anhang Literaturverzeichnis Listingverzeichnis Tabellenverzeichnis Abbildungsverzeichnis...27

4 1 Einleitung Die vorliegende Seminarausarbeitung befasst sich mit dem Thema Enterprise JavaBeans (mit JBoss). Ziel dieser Ausarbeitung ist es, dem Leser einen Einblick in die Welt der Enterprise JavaBeans zu geben. Zunächst wird in Kapitel 2 dem Leser ein Überblick über Enterprise JavaBeans und die zu Grunde liegende Architektur gegeben. Danach werden die Bean-Typen Entity-Bean und Session-Bean in den Kapiteln 2.3 und 2.4 erläutert. Ein besonderes Augenmerk liegt im Bereich der Entity-Beans auf der Container Managed Persistence als eine Persistenzform von Daten. Zuletzt wird in Kapitel 2.4 der Deployment-Deskriptor einer Enterprise JavaBean und in Kapitel 2.5 mögliche Formen von Clients erläutert. In Kapitel 3 wird auf den JBoss eingegangen. Im Speziellen werden die Themen Aufbau, Installation, Konfiguration und Deployment behandelt. Kapitel 4 befasst sich mit dem Open-Source-Projekt XDoclet, dass eine aspektorientierte Programmierung (AOP) von Enterprise JavaBeans unterstützt und die Entwicklung eigener Enterprise JavaBeans erheblich vereinfacht. Im letzten Kapitel (Kapitel 5) wird kurz das zur Seminarausarbeitung gehörige Fallbeispiel bzgl. Installation, Konfiguration und Inhalt erläutert. Der Anhang beinhaltet Literatur-, Listing-, Abbildungs- und Tabellenverzeichnisse. 1

5 2 Enterprise JavaBeans 2.1 Was ist Enterprise JavaBeans? Enterprise JavaBeans (kurz: EJB) ist das serverseitige Komponentenmodell der Firma Sun Microsystems für die Programmiersprache Java bzw. für die Java 2 Enterprise Edition (J2EE) Plattform. [SunEJB] Eine Enterprise-Bean ist eine Komponente, die Clients von einem Server bereitgestellt wird. Da es sich bei Enterprise JavaBeans um eine verteilte Objekt-Architektur handelt, basiert die Kommunikation zwischen Client und Server auf Java RMI. Genauer gesagt definiert Enterprise JavaBeans die entfernten Interfaces einer Bean mit Java RMI-IIOP, was für CORBA- Konformität sorgt. [Monson-Haefel] Das Komponentenmodell der Enterprise JavaBeans ermöglicht es, dass Komponenten unabhängig vom zu Grunde liegenden Server entwickelt werden und somit die angestrebte Wiederverwendbarkeit gewährleistet bleibt. Um diese Wiederverwendbarkeit zu gewährleisten sind gewisse Restriktionen für Server und Komponente vorhanden, die im Folgenden erklärt werden. Neben der Wiederverwendbarkeit werden auch Services wie Transaktionen und Autorisierung von Enterprise JavaBeans unterstützt, was eine Vereinfachung der Beans und die Möglichkeit für den Komponentenentwickler sich bei der Entwicklung auf die reine Fachlichkeit zu konzentrieren bedeutet. 2.2 Architektur Der Applikationsserver Ein Applikationsserver soll die Komplexität der Entwicklung von Geschäftsprozessen in der heutigen Internet-Welt beherrschbar machen. Er besteht oft aus einer Kombination verschiedener Technologien wie Webservern, Object Request Brokern (ORBs), nachrichtenorientierter Middleware (message-oriented middleware, MOM), Datenbanken und so weiter. [Monson- Haefel] Der Applikationsserver genauer der J2EE-Appliationsserver ist die Basiskomponenten der EJB-Architektur. Er ist eine Laufzeitumgebung für verschiedene (EJB-)Container. [Denninger] Ein J2EE-Applikationsserver muss folgende grundlegende Funktionalitäten bereitstellen: das Thread- und Prozessmanagement, die Unterstützung von Clustering und Lastverteilung, die Ausfallsicherheit, einen Namens- und Verzeichnisdienst, eine Zugriffsmöglichkeit auf und das Pooling von Betriebssystemresourcen. 2

6 2.2.2 Der EJB-Container Der EJB-Container ist Teil des J2EE-Applikationsservers und stellt die Laufzeitumgebung für EJB-Komponenten dar. Außerdem stellt er der Bean alle benötigten Dienste bereit. Folgende Programmierschnittstellen (Dienste) muss der Container mindestens bereitstellen: das API der J2SE (Java 2 Platform, Standard Edition), das API der EJB 2.0 Spezifikation, das API des JNDI 2.0 (Java Naming and Directory Interface), das UserTransaction-API aus JTA (Java Transaction API), das API der JDBC-2.0-Erweiterung (Java Database Connectivity), das API des JMS (Java Messaging Service), das API von JavaMail 1.1, das API von JAXP 1.0 (Java XML Parser). [Denninger] Neben dem Bereitstellen der oben genannten Dienste hat der EJB-Container noch weitere Aufgaben. Der EJB-Container ist für die Kontrolle des Lebenszyklus einer Bean zuständig, erzeugt Bean-Instanzen, setzt sie in verschiedene Zustände und verwaltet sie in Pools, für den Fall, dass sie gerade nicht benötigt werden (Instanzenpooling). Die Lebenszyklen der verschiedenen Bean-Typen werden in den Kapiteln (Entity-Beans), und (Session-Beans) erklärt. Des Weiteren kümmert sich der EJB-Container um Persistenz, Transaktionen, Messaging und Sicherheit Der Persistenz-Manager Der Persistenz-Manager ermöglicht die automatische Persistenz bestimmter Komponenten. Er wurde mit der Spezifikation 2.0 eingeführt. Wann die Daten einer Komponente geladen und gespeichert werden, bestimmt zwar weiterhin der EJB-Container, aber verantwortlich für das Wo und Wie der Speicherung der Daten ist der Persistenz-Manager. Er kommuniziert mit dem Speichermedium, z.b. einer relationalen Datenbank. Der Persistenz-Manager ist auch für Suchanfragen verantwortlich. Er kann mit Kenntnis über die Abbildung der Daten abstrakte Suchanfragen in konkrete Suchanfragen umwandeln. Enterprise JavaBeans stellt hierzu die Abfragesprache EJB-QL bereit (siehe Kapitel 2.3.4) Typen von Enterprise-Beans Es gibt drei Typen von Enterprise-Beans: Entity-, Session- und Message-Driven-Beans. Da Message-Driven-Beans zumindest grundlegende Kenntnisse in JMS (Java Messaging Service) voraussetzen, die Vermittlung der Kenntnisse aber an dieser Stelle zu aufwendig wären, werden hier und im Folgenden nur die ersten beiden Bean-Typen behandelt. 3

7 Tabelle 1 gibt einen Überblick über die Aufgabe der, den Zugriff auf und die Persistenz der jeweiligen Bean(-Typen) [Denninger]. Aufgabe der Bean Zugriff auf die Bean Persistenz der Bean Entity-Bean Repräsentiert ein Geschäftsobjekt, dessen Daten sich in einem dauerhaften Speicher befinden. Beispiel: Tabelle in einer Datenbank Die Entity-Bean ist eine zentrale Ressource; die Bean-Instanz wird von mehreren Clients gleichzeitig benutzt und ihre Daten stehen allen Clients zur Verfügung. Persistent; Zustand der Bean befindet sich auf einem persistenten Speichermedium, wenn Client oder Server terminiert werden. Beispiel: Datensatz in einer Tabelle Session-Bean Repräsentiert einen serverseitigen Dienst, der Aufgaben für einen Client ausführt. Beispiel: Warenkorb (Stateful Bean) Eine Session-Bean ist für den Client eine private Ressource. Sie steht ihm exklusiv zur Verfügung. Nicht persistent; wenn der verbunden Client oder der Server terminiert werden, ist die Bean nicht mehr verfügbar. Tabelle 1: Unterscheidungskriterien zwischen Bean-Typen Bestandteile einer Enterprise-Bean Um Entity- und Session-Beans zu implementieren, müssen die Komponenten-Interfaces, eine Bean-Klasse und ein Primärschlüssel, sofern es sich um eine Entity-Bean handelt, definiert werden. Außerdem wird ein Deployment-Deskriptor benötigt (siehe Kapitel 2.5). Es gibt vier Typen von Interfaces [vgl. Monson-Haefel]: Entferntes Interface (remote interface) Das entfernte Interface definiert die Geschäftsmethoden der Bean, auf die Anwendungen außerhalb des EJB-Containers zugreifen können. Entferntes Home-Interface (home interface) Das entfernte Home-Interface definiert die Lebenszyklus-Methoden von Beans, auf die Anwendungen außerhalb des EJB-Containers zugreifen können. Diese dienen zum Erzeugen neuer Beans, zum Löschen von Beans und zum Suchen von Beans. Lokales Interface (local interface) Das lokale Interface einer Enterprise-Bean definiert die Geschäftsmethoden der Bean, die von anderen Beans, die sich im gleichen EJB-Container befinden, verwendet werden können. Beans können somit ohne den Aufwand eines verteilten Objekt-Protokolls miteinander kommunizieren. 4

8 Lokales Home-Interface (local home interface) Das lokale Home-Interface definiert die Lebenszyklus-Methoden einer Bean, die von anderen Beans verwendet werden können, die sich im gleichen EJB-Container befinden. Die Unterscheidung von entfernten und lokalen Interfaces resultiert aus den Sichtbarkeiten einer Bean. Auf diese wird in Kapitel 2.6 im Rahmen der Betrachtung der möglichen Clients einer Bean noch eingegangen. Die Bean-Klasse ist diejenige Klasse, in der die Geschäfts- bzw. Lebenszyklusmethoden einer Bean implementiert werden. Allerdings werden die Home- und Remote-Interfaces nicht über das Schlüsselwort implements eingebunden. Die Signaturen der Methoden in der Bean-Klasse müssen allerdings den Signaturen der Methoden in den Interfaces entsprechen. Dies ist zum Teil recht verwirrend und kann bei der Entwicklung von Enterprise-Beans schnell zu Problemen führen, da evtl. Methoden bei der Implementierung der Bean vergessen werden oder mit einer falschen Signatur erstellt werden. Abhilfe schafft hier mitunter das Tool XDoclet, das in Kapitel 4 kurz erläutert wird. Zu den Lebenszyklusmethoden einer Bean gehören auf jeden Fall die Methoden ejbcreate und ejbremove zum Erzeugen bzw. Entfernen einer Bean-Instanz. Bei Entity-Beans hat dies vor allem Auswirkungen auf den zu Grunde liegenden Datenspeicher es werden ggf. Datensätze im Datenspeicher angelegt bzw. gelöscht. Der Primärschlüssel, der bei Entity-Beans benötigt wird, ist eine einfache Klasse, die als einzige Anforderung hat, dass sie das Interface java.io.serializable implementieren muss. Die Klasse identifiziert eine Entität eines bestimmten Typs eindeutig. 2.3 Entity-Bean Was ist eine Entity-Bean? Eine Entity-Bean ist ein Objekt, das persistente Daten repräsentiert. In den meisten Fällen werden die Daten in einer Datenbank gespeichert. [Denninger] Allerdings muss man feststellen, dass eine Entity-Bean mehr als ein reiner Datencontainer bzw. ein reine Datenrepräsentation darstellt, sondern, dass es sich um ein Geschäftsobjekt handelt, das einem Benutzer Daten aus einer Datenbank transaktionsgesichert bereitstellt. Beispiele für solche Geschäftsobjekte könnten z.b. ein Seminar, ein Dozent oder ein Student sein, wie es im Fallbeispiel der Fall ist. Entity-Beans werden in Anwendungen dann benutzt, wenn Daten über einen längeren Zeitraum gespeichert bzw. zur Verfügung bereitgestellt werden sollen. Ihr Zustand bleibt erhalten, wenn der Applikationsserver angehalten und wieder gestartet wird. Dies liegt vor allem daran, dass die Daten, die die Entity-Bean repräsentiert, von einem (externen) DBMS verwaltet werden. Wie schon in Kapitel erwähnt, werden Entity-Beans als zentrale Ressourcen verwaltet. Das heißt aber auch, dass ein paralleler Zugriff von mehreren Clients auf eine Ressource verwaltet 5

9 werden muss. Der EJB-Container synchronisiert und serialisiert die Anfragen die Zugriffe auf die Entity-Beans. Der EJB-Container ist ebenfalls für den Lebenszyklus einer Entity-Bean zuständig. Eine Entity- Bean hat immer einen der folgenden drei Zustände [vgl. Monson-Haefel]: Kein Zustand In diesem Zustand existiert keine Instanz der Bean. Gepoolter Zustand In diesem Zustand befindet sich eine Instanz im Container. Diese Instanz ist aber noch keinem EJB-Objekt zugeordnet. Bereit-Zustand In diesem Zustand befindet sich eine Instanz im Container, die einem EJB-Objekt ist. Abbildung 1 stellt den Lebenszyklus einer Entity-Bean in einer Art Zustandautomat dar. Abbildung 1: Lebenszyklus einer Entity-Bean-Instanz Persistenz Um den Zustand einer Entity-Bean zu sichern, gibt es zwei verschiedene Persistenzmechanismen. Bei der Bean-Managed-Persistence (kurz: BMP) übernimmt der Entwickler selber die Verantwortung dafür, dass die Attribute der Bean vollständig und korrekt in die zu Grunde liegende Datenquelle gespeichert werden. Bei der Container-Managed-Persistence (kurz: CMP) übernimmt der EJB-Container die Verantwortung für die Speicherung des Zustands der Bean. Im Folgenden wird nur die CMP behandelt, da sie zum einen einfacher zu verstehen ist und zum anderen auch in der Praxis mehr Verwendung findet bzw. finden sollte. 6

10 Bei der Entwicklung von CMP-Entity-Beans erstellt der Bean-Entwickler eine abstrakte Klasse, die zum Zugriff auf ihre Attribute abstrakte getter- und setter-methoden enthält. Es muss gemäß EJB-Spezifikation keine Implementierung für diese Zugriffsmethoden erstellt werden, da der EJB-Container beim Deployen der Bean eine Implementierung der abstrakten Klasse erstellt. Die Attribute werden auch nicht in der abstrakten Klasse definiert, wie es bei üblichen JavaBeans der Fall ist, sondern sind ebenfalls Teil der implementierenden Klasse. Gültige Datentypen für die Attribute einer Bean sind die primitiven Datentypen der Programmiersprache Java bzw. ihre Objektrepräsentation (z.b. int, java.lang.integer usw.) und serialisierbare Datentypen der Programmiersprache Java, d.h. solche Klassen, die java.io.serializable implementieren (z.b. java.lang.string oder java.util.date). Natürlich können auch selbst definierte Datentypen benutzt werden, solange diese serialisierbar sind. Grundsätzlich werden Attribute in zugeordneten Spalten einer durch die Entity-Bean repräsentierten Tabelle gespeichert. Die Java-Datentypen werden vom Applikationsserver den jeweiligen SQL-Datentypen zugeordnet. So wird beispielsweise String dem SQL-Typ VARCHAR zugeordnet. Bei der Speicherung von Attributen eines selbst definierten Datentypen mittels eines normalen RDBMS muss allerdings beachtet werden, dass ein entsprechender SQL- Datentyp für dieses Attribut verwendet wird. Meistens ist dies ein sog. BLOB (Binary Large Object) Beziehungen zwischen Entitäten Aus dem klassischen Relationenmodell sind Beziehungen zwischen einzelnen Entitäten bereits bekannt. In relationalen DBMSs werden diese Beziehungen über Foreign-Key-Constraints abgebildet. Da Entity-Beans im Prinzip Tabellen (genauer: Entitäten) in einem RDBMS objektorientiert abbilden, liegt die Vermutung nahe, dass es auch bei Entity-Beans entsprechende Techniken für die Abbildung solcher Beziehungen gibt. Im Zusammenhang mit CMP-Entity- Beans spricht man von Container Managed Relationships (CMR). Es gibt sieben verschiedene Beziehungstypen [vgl. Monson-Haefel], die hier kurz an Hand des Fallbeispiels erläutert werden: Eins-zu-eins, unidirektional Beziehung zwischen Dozent und Lehrgebiet; es ist mit Sicherheit interessant zu wissen, zu welchem Lehrgebiet ein Dozent (und damit sein Seminar) gehört, aber für eine Seminarverwaltung ist es nicht unbedingt notwendig für ein bestimmtes Lehrgebiet den Dozenten zu wissen. Eins-zu-eins, bidirektional Beziehung zwischen Dozent und Lehrgebiet; möchte man aus einem bestimmten Lehrgebiet ein Seminar auswählen, so muss auch eine Verbindung zwischen Dozent und Lehrgebiet bestehen, da keine direkte Zuordnung des Lehrgebiets zum Seminar existiert. Dies ist nur über den Dozenten möglich. 7

11 Eins-zu-viele, unidirektional Beziehung zwischen Dozent und Seminar; ein Dozent hält mehrere Seminare. Es ist vielleicht wünschenswert nur eine Liste aller Seminare eines Dozenten zu haben, aber nicht unbedingt zu wissen, welcher Dozent zu einem Seminar gehört (wobei dies im Allgemeinen natürlich schon relativ interessant für einen Studenten ist). Eins-zu-viele, bidirektional Beziehung zwischen Dozent und Seminar; ein Dozent hält mehrere Seminare. Es ist mit Sicherheit interessant zu wissen, welcher Dozent ein bestimmtes Seminar hält, aber auch welche Seminare ein Dozent überhaupt hält oder gehalten hat. Viele-zu-eins, unidirektional Dies ist der umgekehrte Fall zu Eins-zu-viele, unidirektional. Viele-zu-viele, unidirektional Beziehung zwischen Seminar und Student; ein Student kann mehrere Seminare besuchen und an einem Seminar nehmen mehrere Studenten teil. Bei einer reinen Seminarverwaltung ist es mir Sicherheit interessant zu wissen, welche Studenten an einem Seminar teilnehmen, aber nicht unbedingt, an welchen Seminaren ein Student teilnimmt. Viele-zu-viele, bidirektional Beziehung zwischen Seminar und Student; ein Student kann mehrere Seminare besuchen und an einem Seminar nehmen mehrere Studenten teil. Erweitert man die reine Seminarverwaltung, um eine Verwaltung der Studenten, so ist es mit Sicherheit auch sehr interessant zu wissen, welche Seminare ein Student besucht bzw. besucht hat. Die Definition dieser Beziehungen wird im Deployment-Deskriptor der Entity-Bean vorgenommen. Ein Beispiel für die Definition einer bidirektionalen Eins-zu-eins-Beziehung ist in Kapitel 2.5 zu finden. Wichtig ist vor allem zu wissen, dass die Zugriffsmethoden für die über CMR definierten Werte ebenfalls abstrakt sind. Listing 1 zeigt die Klasse für die Bean Lehrgebiet mit ihren abstrakten CMR-Methoden getdozent und setdozent. Die Methoden werden für den Zugriff auf den Dozenten eines Lehrgebiets benutzt und sind Teil der bidirektionalen Eins-zu-eins-Beziehung. Nachdem nun dargelegt wurde, was eine Entity-Bean ist, wie sie persistiert wird und wie Beziehungen zwischen Container Managed Persistence Entity-Beans über Container Managed Relationships dargestellt werden, wird abschließend noch kurz erläutert, wie Beans bzw. ihre Daten aus dem Datenspeicher geholt werden. Die Lösung hierzu ist die EJB Query Language. 8

12 //... do some imports and package definition here! public abstract class LehrgebietBean implements EntityBean { } public abstract Long getid(); public abstract void setid(long id); public abstract String getname(); public abstract void setname(string name); public abstract DozentLocal getdozent(); public abstract void setdozent(dozentlocal dozent); public Long ejbcreate(string name) throws javax.ejb.createexception { //... set new id and name! } public void ejbpostcreate(string name) throws javax.ejb.createexception { // do nothing; exists due to ejb specification! } Listing 1: Bean-Klasse der Entity-Bean Lehrgebiet EJB Query Language Seit der Version 1.0 der EJB Spezifikation gibt es bereits Suchmethoden, so genannte Finder- Methoden. Sie dienen zum Auffinden von Entity-Beans. Alle Entity-Beans müssen eine Methode namens findbyprimarykey() haben, die den Primärschlüssel der Bean als Parameter übergeben bekommt [Monson-Haefel]. Seit der Version 2.0 ist es mittels der EJB Query Language (EJB QL) möglich relativ einfach eigene Suchmethoden zu definieren. (Zwar war dies auch schon vor Version 2.0 der EJB Spezifikation möglich, aber es gab keine standardisierte Vorgehensweise.) Die EJB QL ist eine deklarative Abfragesprache. Sie ähnelt in gewisser Weise der in relationalen Datenbanken verwendeten Sprache SQL. Die Listings 2, 3 und 4 enthalten einige Vergleiche von SQL und EJB QL. Die angegebenen Beispiele sollen ein Gefühl dafür vermitteln, wie die EJB QL funktioniert. Grundsätzlich wird sie nur für die Abfrage von Daten also SELECTs benutzt, da das Ändern und neu Anlegen von Datensätzen über die setter-methoden und die ejbcreate-methoden geschieht. Tiefergehende Erläuterungen der EJB QL finden sich in [Monson-Haefel] und [Denninger]. Standard-SQL-Abfrage: SELECT * FROM Lehrgebiet EJB QL-Abfrage: SELECT OBJECT( l ) FROM Lehrgebiet l Listing 2: Vergleich einer einfachen Abfrage 9

13 Standard-SQL-Abfrage: SELECT l.name FROM Lehrgebiet l, Dozent d WHERE d.lehrgebiet_id = l.id EJB QL-Abfrage: SELECT d.lehrgebiet.name FROM Dozent d Listing 3: Vergleich einer einfachen Abfrage mit Pfad Standard-SQL-Abfrage: SELECT d.name FROM Lehrgebiet l, Dozent d WHERE d.lehrgebiet_id = l.id AND l.name =... EJB QL-Abfrage: SELECT d.name FROM Dozent d WHERE d.lehrgebiet.name =?1 Listing 4: Vergleich einer einfachen Abfrage mit Bedingung 2.4 Session-Bean Was ist eine Session-Bean? Eine Session-Bean ist ein Geschäftsobjekt, da sie typischerweise die Logik eines Geschäftsprozesses realisiert. [Denninger] Eine Session-Bean wird als serverseitige Erweiterung einer Anwendung verstanden. Der Client greift auf eine Session-Bean zu, sobald er Funktionalitäten benutzen möchte, die er für sein Programm benötigt. In einer auf dem MVC-Konzept basierenden Anwendung würde das Model somit komplett durch EJB abgebildet werden, während die Anwendung im Controller den Aufruf der Bean-Funktionalität implementiert. Nachdem nun kurz erklärt wurde, was eine Session-Bean generell ist, stellen sich noch die Fragen Wann werden Session-Beans eingesetzt? und Wie hängen Session- und Entity-Beans zusammen?. Session-Beans werden eingesetzt, sobald auf konzeptübergreifende Daten zugegriffen wird, die nicht gemeinsam genutzt werden und normalerweise nur gelesen werden. [Monson-Haefel] Zum Zusammenhang von Session- und Entity-Beans beschreibt Richard Monson-Haefel sehr einfach und treffend wie folgt: Session-Beans können die Interaktionen zwischen Entity-Beans verwalten und beschreiben, wie diese zusammenarbeiten, um eine bestimmte Aufgabe zu erledigen. Die Beziehung zwischen Session-Beans und Entity-Beans ähnelt der Beziehung 10

14 zwischen einem Drehbuch eines Theaterstücks und den Schauspielern in diesem Stück; die Entity-Beans sind die Schauspieler, die Session-Bean ist das Drehbuch. [Monson-Haefel] Es gibt zwei Arten von Session-Beans. Diese sollen im Folgenden kurz erläutert werden Zustandslose Session-Beans Zustandslose Session-Beans haben keinen so genannten Conversational-State, d.h. Attributwerte, Referenzen auf andere Beans, Datenbankverbindungen etc. werden nicht persistent gehalten. Eine Instanz hat genau für einen Methodenaufruf einen Conversational- State, in dem alle Informationen behalten werden, und beim nächsten Methodenaufruf sind die Informationen aus einem vorherigen Aufruf nicht mehr vorhanden. Dies hat auch zur Folge, dass Instanzen von zustandslosen Session-Beans neben dem Zustand Existiert nicht sich nur in einem anderen Zustand befinden können, nämlich dem Zustand Methoden-bereit Pool (engl. pooled ready ). Instanzen stehen einem Client für die Dauer eines Methodenaufrufs zur Verfügung. Abbildung 2: Lebenszyklus einer zustandslosen Session-Bean Aufgrund der Zustandslosigkeit werden zustandslose Session-Beans auf als leichtgewichtig bezeichnet. Sie benötigen weniger Server-Ressourcen, da sie weder persistiert werden müssen noch einem Client zugeordnet sind, weswegen sich EJB-Objekte auch nur wenige Bean- Instanzen teilen müssen. Beispiele für den Einsatz von zustandslosen Session-Beans sind die Erzeugung von Berichten, Stapelverarbeitung oder das Überprüfen von Kreditkarten. Dies alles sind Beispiele von generischen und wieder verwendbaren Diensten dem typischen Einsatz von zustandslosen Session-Beans Zustandsbehaftete Session-Beans Zustandsbehaftete Session-Beans besitzen einen Conversational-State, was zur Folge hat, dass der EJB-Container wesentlich mehr Arbeit verrichten muss als bei zustandslosen Session-Beans. 11

15 Für den Erhalt des Zustands ist es nötig, dass jedem Client eine Session-Bean-Instanz zugewiesen wird. Zustandsbehaftete Session-Beans werden somit auch als schwergewichtig bezeichnet. Um trotzdem effizient zu bleiben, d.h. möglichst wenig Instanzen gleichzeitig betreiben zu müssen, können Instanzen von zustandsbehafteten Session-Beans passiviert und später wieder aktiviert werden. Passivierung bedeutet im Prinzip nur, dass die Bean-Instanz aus dem Arbeitsspeicher ausgelagert wird. Bei Bedarf wird sie aktiviert, d.h. wieder in den Arbeitsspeicher aufgenommen. Abgesehen vom Zustand Passiv verhält sich eine zustandsbehaftete Session-Bean genau so wie eine zustandslose Session-Bean. Der Unterschied ist also die Aktivierung und Passivierung. Dieser Unterschied reichte aber schon aus, um eine Unterteilung der Session-Beans in zwei Arten vorzunehmen. [Denninger] Abbildung 3: Lebenszyklus einer zustandsbehafteten Session-Bean Ein typisches Beispiel für eine zustandsbehaftete Session-Bean ist ein Warenkorb in einem Shop-System. Je Client muss ein Warenkorb über mehr als einen Methodenaufruf bzw. über einen längeren Zeitraum seinen Zustand behalten. 2.5 Deployment-Deskriptor Der Deployment-Deskriptor einer Bean hat eine ähnliche Funktion wie eine Eigenschaftsdatei. Das Verhalten der Komponente kann hier konfiguriert und auch zur Laufzeit ohne Änderung der Software selber geändert werden. Vor dem Deployen einer Bean wird eine.jar-datei erstellt. Neben der Bean-Klasse und den Interfaces enthält diese auch den Deployment-Deskriptor ejb-jar.xml. Wenn eine Bean bzw. die.jar-datei nun deployt wird, wird der Deployment-Deskriptor ausgelesen und der EJB- Container erhält Informationen über die Bean. Informationen sind zum Beispiel um welche Art von Bean es sich handelt (Session, Entity, Message Driven) oder, wenn es sich um eine CMP- Entity-Bean handelt, welche Attribute welchen Spalten einer Tabelle entsprechen. 12

16 Die Listings 5-7 zeigen Auszüge aus dem Deployment-Deskriptor des Fallbeispiels inklusive der Definition einer bidirektionalen Eins-zu-eins-Beziehung. Eine ausführliche Erklärung zu den einzelnen Teilen des Deployment-Deskriptor liefert Richard Monson-Haefel in seinem Buch Enterprise JavaBeans in einem gesonderten Kapitel. [Monson- Haefel] <entity > <description><![cdata[]]></description> <ejb-name>lehrgebiet</ejb-name> <local-home>de.christianhuelsmeier.seminar.interfaces. LehrgebietLocalHome</local-home> <local>de.christianhuelsmeier.seminar.interfaces. LehrgebietLocal</local> <ejb-class>de.christianhuelsmeier.seminar.ejb. LehrgebietCMP</ejb-class> <persistence-type>container</persistence-type> <prim-key-class>java.lang.long</prim-key-class> <reentrant>false</reentrant> <cmp-version>2.x</cmp-version> <abstract-schema-name>lehrgebiet</abstract-schema-name> <cmp-field > <description><![cdata[gibt die Id des Lehrgebiets zurueck.]]></description> <field-name>id</field-name> </cmp-field> <cmp-field > <description><![cdata[gibt den Namen des Lehrgebiets zurueck.]]></description> <field-name>name</field-name> </cmp-field> <primkey-field>id</primkey-field> <query> <query-method> <method-name>findall</method-name> <method-params></method-params> </query-method> <result-type-mapping>local</result-type-mapping> <ejb-ql><![cdata[select OBJECT(o) FROM Lehrgebiet o]]></ejb-ql> </query> </entity> Listing 5: Definition einer Entity-Bean im Deployment-Deskriptor 13

17 <session > <description><![cdata[]]></description> <ejb-name>seminarverwaltung</ejb-name> <home>de.christianhuelsmeier.seminar.interfaces. SeminarverwaltungHome</home> <remote>de.christianhuelsmeier.seminar.interfaces. Seminarverwaltung</remote> <local-home>de.christianhuelsmeier.seminar.interfaces. SeminarverwaltungLocalHome</local-home> <local>de.christianhuelsmeier.seminar.interfaces. SeminarverwaltungLocal</local> <ejb-class>de.christianhuelsmeier.seminar.ejb. SeminarverwaltungSession</ejb-class> <session-type>stateless</session-type> <transaction-type>container</transaction-type> </session> Listing 6: Definition einer Session-Bean im Deployment-Deskriptor <ejb-relation > <ejb-relation-name>dozent-cmp20-lehrgebiet-cmp20</ejb-relation-name> <ejb-relationship-role > <ejb-relationship-role-name> DOZENT-cmp20-has-LEHRGEBIET-cmp20 </ejb-relationship-role-name> <multiplicity>one</multiplicity> <relationship-role-source > <ejb-name>dozent</ejb-name> </relationship-role-source> <cmr-field > <cmr-field-name>lehrgebiet</cmr-field-name> </cmr-field> </ejb-relationship-role> <ejb-relationship-role > <ejb-relationship-role-name> LEHRGEBIET-cmp20-has-DOZENT-cmp20 </ejb-relationship-role-name> <multiplicity>one</multiplicity> <relationship-role-source > <ejb-name>lehrgebiet</ejb-name> </relationship-role-source> <cmr-field > <cmr-field-name>dozent</cmr-field-name> </cmr-field> </ejb-relationship-role> </ejb-relation> Listing 7: Definition einer bidirektionalen 1-zu-1-Beziehung im Deployment-Deskriptor 14

18 2.6 Client-Anwendungen Grundsätzlich kann man drei verschiedene Arten von Client-Anwendungen einer Bean unterscheiden. Enterprise JavaBeans: Eine Enterprise JavaBean kann Client einer anderen Bean innerhalb des EJB-Containers sein. Es wird ein lokaler Zugriff (local) auf die andere Bean durchgeführt. (Web-)Anwendungen, die sich auf dem gleichen Server wie die Bean befinden: Eine Anwendung, die sich auf dem gleichen Server wie die Bean befinden, (typischerweise eine Web-Anwendung) greift auf eine Bean zu. Dieser Zugriff passiert zwar innerhalb des Servers und ist deswegen auch schneller, als ein Zugriff, der von einem externen Client (ein Client, der auf einem anderen Rechner oder außerhalb der Server-Software läuft) getätigt wird, aber er wird als entfernter Zugriff (remote) bezeichnet. eine (externe) Java-Anwendung: Eine Anwendung (z.b. ein Swing-Client), die auf einem anderen Rechner oder auf dem gleichen Rechner, aber außerhalb der Server-Software, läuft und auf die Bean zugreift. Ein solcher Zugriff wird als entfernter Zugriff (remote) bezeichnet. Insgesamt unterscheidet man also drei Typen von Klienten und zwei Sichten bzw. Zugriffsarten auf eine Bean. Zum einen den lokalen Zugriff und zum anderen den entfernten Zugriff. Aus diesem Grund wird in der EJB 2.0-Spezifikation auch zwischen lokalen und entfernten Interfaces unterschieden (vgl. Kapitel 2.2.5). Die Trennung von lokalen und entfernten Interfaces ermöglicht es der Bean für verschiedene Typen von Klienten verschiedene Dienste bereit zu stellen. Zum Beispiel ist es durchaus möglich, dass eine bestimmte Funktionalität einer Session- Bean von anderen Session-Beans oder von Message-Driven-Beans aufgerufen werden darf, aber es nicht beabsichtigt ist, dass externe Klienten wie Web-Anwendungen oder Swing-Client diese Funktionalitäten aufrufen dürfen. Neben der Idee der Bereitstellung verschiedener Dienste in verschiedenen Sichten war vor allem die Interaktion zwischen Beans der ausschlaggebende Punkt für die Einführung von lokalen Interfaces. Da Beans, die untereinander interagieren, kein Netzwerk brauchen, die EJB 1.1- Spezifikation aber verlangt, dass Beans die miteinander interagieren auch die Java RMI-IIOP- Semantik verwenden müssen und immer mehr Hersteller versuchten den zusätzlichen Aufwand durch das Netzwerk zu vermeiden, entschloss sich Sun letztlich die Option des lokalen Zugriffs in die Spezifikation aufzunehmen. Vor allem auch deshalb, weil die Optimierungen der Hersteller quasi allgegenwärtig wurden. [Monson-Haefel] 15

19 3 JBoss 3.1 Was ist der JBoss Application Server? Der JBoss Application Server (kurz: JBoss AS) ist ein kostenloser Open-Source- Applikationsserver, der von der JBoss Group entwickelt wird. Mittlerweile ist die aktuellste Version des JBoss AS die Version 4.0 im Developer Release 4. Die aktuellste stabile Version ist die Version 3.2.3, die auch als Grundlage für diese Seminarausarbeitung und das damit zusammenhängende Fallbeispiel dient. Was ein Application Server im Allgemeinen ist, wurde bereits in Kapitel kurz erläutert. Im Zusammenhang mit dem JBoss AS muss noch erwähnt werden, dass für J2EE- Applikationsserver von der Firma Sun ein Kompatibilitätszertifikat für das J2EE ausgestellt wird, wenn er J2EE-kompatibel ist. Der JBoss AS besitzt dieses Zertifikat derzeit noch nicht, bietet aber laut der JBoss Group full J2EE support [JBossAS]. Der Zertifizierungsprozess für den JBoss AS läuft mittlerweile, nachdem Meinungsverschiedenheit zwischen Sun und der JBoss Group beigelegt wurden und Sun einer Zertifizierung zugestimmt hat. Da der JBoss AS sehr leistungsfähig und zudem kostenlos ist da er wie schon erwähnt ein Open-Source-Produkt ist, erfreut er sich wachsender Beliebtheit bei Entwicklern. Vor allem für Forschungs- und Ausbildungszwecke bietet sich somit an, um z.b. Studenten ohne großen (finanziellen) Aufwand J2EE-Technologien wie EJB, JSP oder JMS nahe zu bringen. Allerdings ist beim Einsatz des JBoss AS zu beachten, dass zwar das Produkt selber kostenlos ist, das Handbuch und sonstige Dokumentationen aber weitestgehend kostenpflichtig sind, was bei Personen oder Gesellschaften mit entsprechend fehlenden finanziellen Mitteln (z.b. bei Studenten) doch mitunter manchmal zu Problemen beim Installieren und vor allem Konfigurieren führen kann. Weitere Informationen zum JBoss AS finden sich auf der Produkt-Homepage des JBoss AS. [JBossAS] 3.2 Aufbau des JBoss Application Server Der JBoss AS stellt die Möglichkeit bereit verschiedene Konfigurationen zu verwenden. Diese Konfigurationen werden in unterschiedlichen Ordnern im server-verzeichnis des JBoss verwaltet (siehe Abbildung 4). Standardmäßig wird der JBoss mit drei (Server-)Konfigurationen ausgeliefert: default, minimal und all. Die minimal-konfiguration stellt das Minimum an Services bereit, die der JBoss zum Starten benötigt. Beim Start der all-konfiguration hingegen werden alle verfügbaren Services geladen. Anhand der default-konfiguration soll kurz erklärt werden, welche Verzeichnisse es innerhalb einer Konfiguration gibt und welchen Zweck sie haben. conf Beinhaltet Konfigurationsdateien der Services der jeweiligen Server- Konfiguration. 16

20 data Das Verzeichnis in dem die im JBoss integrierte Datenbank Hypersonic ihre Daten ablegt. deploy Das Verzeichnis in das die Applikation zum Deployen abgelegt wird. Näheres zum Deployen einer Applikation bzw. von Enterprise JavaBeans findet sich in Kapitel 3.4. lib Beinhaltet sämtliche.jar-dateien (Bibliotheken), die von der Server- Konfiguration benötigt werden log Beinhaltet sämtliche Logging-Informationen einer Server-Konfiguration. tmp Beinhaltet temporäre Dateien, die vom Deployer benutzt werden. work Das Verzeichnis wird vom internen Tomcat (JSP-Container und -Server) für die Kompilierung von JSP-Seiten benutzt. Abbildung 4: Verzeichnisstruktur des JBoss Application Server Neben dem server-verzeichnis des JBoss AS gibt es noch das bin-verzeichnis, dass u.a. die Startskripte für den JBoss bereit stellt, sowie das lib-verzeichnis, das sämtliche.jar-dateien (Bibliotheken) beinhaltet, die zum Starten des JBoss AS benötigt werden. Außerdem sind ein clients-verzeichnis und ein docs-verzeichnis vorhanden. clients beinhaltet.jar-dateien, die von Java Anwendungen benötigt werden. docs beinhaltet XML DTDs, die im JBoss benutzt werden. Weitere Informationen zum Aufbau des JBoss AS sind im frei verfügbaren Dokument Getting started with JBoss zu finden. [Taylor] 3.3 Installation des JBoss Application Server Die Installation des JBoss AS ist prinzipiell recht einfach. Nachdem zunächst die.zip-datei, die die Dateien des JBoss beinhaltet, von der JBoss-Homepage [JBoss] heruntergeladen wurde, muss sie anschließend nur noch in das Verzeichnis kopiert, in das der JBoss installiert werden soll, z.b. C:\Programme. 17

21 Nun muss die.zip-datei nur noch entpackt werden und der JBoss ist prinzipiell startfähig. Wenn er korrekt installiert wurde, befindet er sich jetzt z.b. im Verzeichnis C:\Programme\jboss Um den JBoss zu starten, muss nur die Startdatei run.bat im bin-verzeichnis des JBoss ausgeführt werden. Beim Ausführen der Startdatei wird die default-konfiguration verwendet. Möchte man den JBoss mit einer eigenen Konfiguration starten, so ruft man die Startdatei mit dem Parameter -c und dem Namen der Konfiguration auf, z.b. run -c seminar. Vor dem Start des JBoss muss sichergestellt werden, dass die Umgebungsvariable JAVA_HOME im Betriebssystem gesetzt wurde. Um sicher zu gehen, dass dies auch wirklich geschieht, empfiehlt es sich ein Skript zu schreiben, dass das Setzen der Umgebungsvariable sowie den Start des JBoss selber übernimmt. Listing 8 stellt dies exemplarisch für Windows dar. set JAVA_HOME=C:\ j2sdk1.4.2_03 run c seminar Listing 8: Beispiel für ein JBoss-Startskript 3.4 Konfiguration des JBoss Application Server Wenn man von der Konfiguration des JBoss AS spricht, so ist immer die Konfiguration einer Server-Konfiguration gemeint. Normalerweise ist für eine Standard-Anwendung mit einfachen Session- und Entity-Beans meist, neben der für die Anwendung nötigen Bibliotheken, nur die Konfiguration der Datenbank notwendig. Die für die Anwendung benötigt.jar-dateien (Bibliotheken) werden in das lib-verzeichnis kopiert. Für die Konfiguration der Datenbank müssen zwei Schritte durchgeführt werden. Zum einen muss eine XML-Datei (dbname-ds.xml) für die Datenbankkonfiguration im deploy-verzeichnis angelegt werden. Für eine MySQL-Datenbank wäre dies z.b. die Datei mysql-ds.xml, mit sämtlichen Zugriffsinformationen für die Datenbank (URL, Username, Passwort). Vorlagen für verschiedene Datenbankkonfigurationsdateien sind im docs-verzeichnis des JBoss unter jca zu finden. Zum anderen muss die Datei standardjbosscmp-jdbc.xml im conf-verzeichnis angepasst werden. Die Listings 9 und 10 sind Beispiele für die Datenbankkonfigurationen. <?xml version="1.0" encoding="utf-8"?> <datasources> <local-tx-datasource> <jndi-name>mysqlds</jndi-name> <connection-url>jdbc:mysql://localhost:3306/seminar</connection-url> <driver-class>org.gjt.mm.mysql.driver</driver-class> <user-name>seminar_dba</user-name> <password></password> </local-tx-datasource> </datasources> Listing 9: Beispielkonfiguration einer MySQL-Datenbank (mysql-ds.xml) 18

22 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 3.2//EN" " <jbosscmp-jdbc> <defaults> <datasource>java:/mysqlds</datasource> <datasource-mapping>mysql</datasource-mapping>... <create-table>false</create-table> <remove-table>false</remove-table> <read-only>false</read-only> Listing 10: Beispielkonfiguration einer MySQL-Datenbank (standardjbosscmp-jdbc.xml) Bei der Konfiguration ist vor allem zu beachten, dass der JNDI-Name in der Datei mysqlds.xml die gleiche Bezeichnung hat, wie der Name der Datasource nach dem Prefix java:/, der in der Datei standardjbosscmp-jdbc.xml. 3.5 Deployen von Enterprise-Beans Das Deployen von Enterprise JavaBeans (.jar), Web-Applikationen (.war) oder Enterprise Applikationen (.ear) im JBoss ist recht einfach. Voraussetzung für ein korrektes und fehlerloses Deployen ist lediglich die korrekte Konfiguration der jeweiligen Server-Konfiguration (siehe Kapitel 3.5). Um z.b. eine Enterprise JavaBean zu deployen muss man lediglich das.jar-archiv, in dem sich die Bean befindet, in den deploy-ordner der Server-Konfiguration kopieren und beim nächsten Start deployt der JBoss die Bean automatisch. Da der JBoss auch Hot-Deployment das Hinzufügen von Anwendungen und Services zur Laufzeit, d.h. während der JBoss AS läuft unterstützt, kann ein.jar-,.war- oder.ear-archiv jederzeit in das deploy-verzeichnis kopiert werden. Bei Web-Applikationen ist allerdings zu beachten, dass evtl. bestehende Sessions verloren gehen. 19

23 4 XDoclet XDoclet is a code generation engine. It enables Attribute-Oriented Programming for java. In short, this means that you can add more significance to your code by adding meta data (attributes) to your java sources. This is done in special JavaDoc tags. [XDoclet] Im Prinzip sagt diese Definition alles über XDoclet aus, was der Benutzer wissen muss: er schreibt spezielle JavaDoc-Tags, so genannte XDoclet-Tags, in die Kommentare von Klassen und Methode, die dann dazu benutzt werden, die entsprechenden Sourcen z.b. Interfaces einer Enterprise JavaBean oder den XML-Deployment-Deskriptor zu generieren. Für das Erzeugen der Interfaces und Klassen einer Bean werden nur wenige Tags benötigt. Anhand der Entity-Bean Lehrgebiet aus dem Fallbeispiel soll der Einsatz und die Wirkung dieser Tags erläutert werden. package de.christianhuelsmeier.seminar.ejb; import... /** * type="cmp" * cmp-version="2.x" * name="lehrgebiet" * local-jndi-name="lehrgebietlocalhome" * view-type="local" * primkey-field="id" * * signature="java.util.collection findall()" * result-type-mapping="local" * method-intf="localhome" * query="select OBJECT(o) FROM Lehrgebiet o" * table-name="lehrgebiet" * generate="physical" */ public abstract class LehrgebietBean implements EntityBean {... Listing 11: Klassenkommentare in der Bean Lehrgebiet Im Klassenkommentar einer (Entity-)Bean-Klasse werden die auf jeden Fall benötigt. Die sind stellt Informationen über die Bean bereit. type beschreibt hierbei den Bean-Typen. Gültige Werte sind CMP und BMP für Entity-Beans sowie Stateful und Stateless für Session- Beans. Bei CMP-Entity-Beans kann noch die cmp-version angegeben werden. Standardmäßig ist diese auf "1.x" eingestellt. Da das Fallbeispiel komplett auf der EJB 2.0-Spezifikation basiert, wird der Wert hier noch explizit gesetzt. name spezifiziert den Namen der Bean, der auch im XML-Deployment-Deskriptor benutzt wird. Der unter local-jndi-name angegebene Name ist der JNDI-Name für die lokale EJB. view-type gibt an, ob die Bean nur lokal gesehen werden kann oder auch entfernt gesehen werden kann. D.h., dass bei der Angabe von local nur die 20

24 lokalen Interfaces erstellt werden, während bei der Angabe von both auch die entfernten Interfaces erstellt gibt an, in welcher Tabelle einer relationalen Datenbank die Werte der Bean gespeichert werden sollen. kann man eigene Suchemethoden für Entity-Beans für definieren. Denkbar wäre z.b. neben der standardmäßig vorhandenen findbyprimarykey-methode, die Definition von Methoden, die alle Datensätze zurückgeben oder die Datensätze nach anderen Kriterien als dem Primärschlüssel zurückgeben. Bei Personen wäre dies evtl. der Nachname oder Vorname. In Methodenkommentaren werden neben dem (optionalen) noch benutzt.... /** view-type="local" column-name="id" */ public abstract Long getid(); /** view-type="local" */ public abstract void setid(long id);... /** view-type="local" * * name="dozent-cmp20-lehrgebiet-cmp20" * role-name="lehrgebiet-cmp20-has-dozent-cmp20" * style="foreign-key" */ public abstract de.christianhuelsmeier.seminar.interfaces.dozentlocal getdozent(); /** view-type="local" */ public abstract void setdozent(de.christianhuelsmeier.seminar.interfaces.dozentlocal dozent); /** */ public Long ejbcreate(string name) throws javax.ejb.createexception {... }... Listing 12: Methodenkommentare in der Bean gibt an, ob eine Methode später beim Generieren der Interfaces übernommen werden soll oder, ob sie nicht im Interface angegeben wird (entspricht dem 21

25 Weglassen des Tags). Über das Attribut view-type kann man angeben, ob Methoden im entfernten, lokalen oder in beiden Interfaces verfügbar sein sollen. Wird view-type nicht angegeben, so wird die Sichtbarkeit der Methode an die Sichtbarkeit der Bean, die definiert wurde, definiert die Spalte, in der das Datum in der zur Bean gehörigen Tabelle gespeichert kennzeichnet den Primärschlüssel der kennzeichnet eine ejbcreate-methode, die zum Erzeugen einer Bean- Instanz benötigt wird. Weitere Informationen über XDoclet bzw. den Einsatz von XDoclet sind auf der Homepage des XDoclet-Projekts [XDoclet] zu finden. 22

26 5 Fallbeispiel 5.1 Entwicklungsumgebung Als Entwicklungsumgebung für dieses Beispiel würde die IDE Eclipse in der Version benutzt. Eclipse ist mittlerweile wohl die bekannteste Open-Source-Entwicklungsumgebung im Bereich der Programmiersprache Java. Folgende Schritte sind zu befolgen, um die Entwicklungsumgebung für das Projekt zu konfigurieren: 1. Kopieren der Quellen von der CD in eine beliebiges Verzeichnis, z.b. E:\Daten\seminar (im Folgenden %SEMINAR_HOME%). 2. Anlegen eines neuen Java-Projekts. Als Name gibt man Seminarverwaltung an und als Projektverzeichnis das Verzeichnis mit den Seminar-Sourcen (%SEMINAR_HOME%). Klickt man nun auf Next, so erscheint eine Liste von Source-Pfaden. In ihr sollten nur folgende Verzeichnisse aufgelistet sein: %SEMINAR_HOME%/ejb/src %SEMINAR_HOME%/ejb/build/gen-src %SEMINAR_HOME%/web/src Als Standard-Ausgabeverzeichnis wird Seminarverwaltung/output angegeben. Nun kann der Assistent zur Anlage eines neuen Projektes beendet werden. 3. Zuletzt müssen noch die Ant-Skripte zum Erzeugen und Compilieren der Quelldateien in Eclipse eingebunden werden. Hierzu wählt man im Window -Menü unter dem Untermenü Show View den Punkt Ant aus. Nun fügt man in dem neuen Fenster eine Skriptdatei wie folgt ein. Zunächst klickt man auf das Symbol mit den drei Plus-Zeichen. Im sich nun öffnenden Dialog wählt man unter Seminarverwaltung\ejb\script die Datei build.xml aus und schließt den Dialog wieder. Der Eintrag für dieses Skript ist nun im Ant-Ansichtsfenster vorhanden. Nun wählt man im Kontext-Menü (rechte Maustaste) dieses Eintrages den Punkt Properties und wählt da den Karteireiter Classpath aus. Nachdem man die Option Use global classpath as specified in the Ant runtime properties deaktiviert hat, fügt man die Datei tools.jar aus dem lib-verzeichnis des JDK in die Liste der Additional classpath entries ein. Diese Prozedur wiederholt man für die build.xml-dateien in den Verzeichnissen Seminarverwaltung\script und Seminarverwaltung\web\script. 23

27 5.2 MySQL-Datenbank Für die Benutzung der Entity-Beans wird eine MySQL-Datenbank benötigt. Ein Skript zum Erzeugen der Tabellen in der Datenbank findet sich im Verzeichnis Datenbank auf der CD. Die darin enthaltenen SQL-Befehle müssen nur noch in einer MySQL-Datenbank ausgeführt werden. Voraussetzung für ein erfolgreiches Ausführen der Befehle ist ein installierter MySQL-Server und eine darin eingerichtete Datenbank mit Name, Benutzername und Passwort. Auf die Installation einer MySQL-Datenbank soll an dieser Stelle nicht weiter eingegangen werden. 5.3 JBoss Application Server Wie der JBoss AS aufgebaut ist und wie er sich prinzipiell installieren lässt wurde bereits in Kapitel 3 beschrieben. Hier wird nun beschrieben, wie man den JBoss AS konkret für das Fallbeispiel konfiguriert. Zunächst kopiert man die default-konfiguration (siehe Kapitel 3.2) und benennt sie zum Beispiel in seminar um. Danach beginnt man die Konfigurationsdateien anzupassen. Hierzu kann man als Vorlage die Dateien aus dem Verzeichnis JBoss-Konfigurationsdateien von der CD nehmen. Die Datei standardjbosscmp-jdbc.xml kann ohne Änderungen in das conf-verzeichnis der seminar-konfiguration kopiert werden. Die Datei mysql-ds.xml wird in das deploy- Verzeichnis kopiert, allerdings muss in der Datei noch die URL der Datenbank, z.b. jdbc:mysql://localhost:3306/seminar, wenn die Datenbank den Namen seminar trägt, sowie der Benutzername und das Passwort entsprechend der Einstellungen der MySQL- Datenbank (vgl. Kapitel 5.2) gesetzt werden. Wichtig ist, dass der Name unter dem die Datenbank angesprochen wird in den Konfigurationsdateien ist dies MySqlDS der gleiche ist, wie der in der build.xml-datei im ejb\script-verzeichnis im jboss-tag. Benutzt man allerdings die Dateien von der CD als Vorlage, so ist dies kein Problem. Nachdem diese Einstellungen gemacht wurden, ist der JBoss AS für den Betrieb des Fallbeispiels Seminarverwaltung konfiguriert. Zuletzt sollte noch der Ordner jms im deploy-verzeichnis der seminar-konfiguration gelöscht werden, um Fehler- und Warnmeldungen beim Start zu verhindern. Da im Fallbeispiel keine Message-Driven-Beans enthalten sind, wird der JMS-Service auch nicht benötigt. 5.4 Ant-Skript Mittels der Ant-Skripte können die Enterprise JavaBeans sowie der Web-Client erzeugt, compiliert und im JBoss deployt werden. Die Skripte selber sind relativ zum Stammverzeichnis der Quelldateien (oberhalb vom ejb- und web-verzeichnis) programmiert worden, dass heißt, dass sie nicht geändert werden müssen. Die einzigen absoluten Pfade, die auf das jeweilige 24

28 System des Benutzers angepasst werden müssen, befinden sich in der Datei build.properties im script-verzeichnis des Stammverzeichnisses. Beim Ausführen der Skripte sollte man die Ausführungsreihenfolge beachten. Zunächst führt man das Skript für die Enterprise JavaBeans aus, danach das Skript für die Web-Applikation und zuletzt das Skript zum Deployen der gesamten Anwendung. Die Ant-Skripte erzeugen als Ausgabe eine.war-datei, die die Web-Anwendung beinhaltet, eine.jar-datei, die die Enterprise JavaBeans enthält, sowie eine.ear-datei, die die Web- Anwendung und die Enterprise JavaBeans zu einer Enterprise Applikation zusammenfasst. 5.5 Enterprise JavaBeans Die Seminarverwaltung besteht aus fünf CMP-Entity-Beans und einer Stateless-Session-Bean. Vier der fünf Entity-Beans stellen fachliche Geschäftsobjekte dar (Student, Seminar, Dozent, Lehrgebiet), während die fünfte Entity-Bean (PkGenerator) nur technischen Charakter hat. Leider musste eine Primary-Key-Generator-Bean erstellt werden, da MySQL leider keine Sequenzen unterstützt wie dies zum Beispiel bei Oracle der Fall ist. Zwar gibt es bei MySQL die Funktion des auto_increment, aber in einem normalen insert-statement gibt man den Wert null für den Primary-Key (klassischerweise eine Id) an, was bei der Container Managed Persistance eine NullPointerException auslöst und dazu führt, dass der Datensatz nicht angelegt wird. Die Session-Bean Seminarverwaltung stellt Dienste für Klienten bereit, die es ermöglichen Studenten, Dozenten und Seminar anzulegen sowie An- und Abmeldungen von Seminaren durchzuführen. 25

Enterprise JavaBeans (mit JBoss)

Enterprise JavaBeans (mit JBoss) Enterprise JavaBeans (mit JBoss) Christian Hülsmeier 30.10.2004 Überblick Rekapitulation des vorhandenen Wissen Entity-Beans Session-Beans Deployment-Deskriptor Sichten / Client-Anwendungen Applikationsserver

Mehr

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool JBoss vorbereiten Wir haben ein zip-archiv mit JBoss 4.0.5 in /opt/jboss-4.0.5.zip hinterlegt. Entpacken Sie dieses in ihrem Homeverzeichnis an

Mehr

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.

Mehr

Warum beschäftigt sich ein Linux-Systemhaus mit der Installation von OTRS mit einem Microsoft SQL Server?

Warum beschäftigt sich ein Linux-Systemhaus mit der Installation von OTRS mit einem Microsoft SQL Server? Vorbemerkung Warum beschäftigt sich ein Linux-Systemhaus mit der Installation von OTRS mit einem Microsoft SQL Server? Da wir schon seit einigen Jahren mit OTRS arbeiteten, hat uns ein Kunde beauftragt,

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

EJB jar.xml und Name Service (JNDI)

EJB jar.xml und Name Service (JNDI) EJB jar.xml und Name Service (JNDI) Applikationsserver Prof. Dr. Ch. Reich rch@fh furtwangen.de http://www.informatik.fh furtwangen.de/~reich/appserver/index.html Beschreibung der Beans mit Deployment

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Planung für Organisation und Technik

Planung für Organisation und Technik Salztorgasse 6, A - 1010 Wien, Austria q Planung für Organisation und Technik MOA-VV Installation Bearbeiter: Version: Dokument: Scheuchl Andreas 19.11.10 MOA-VV Installation.doc MOA-VV Inhaltsverzeichnis

Mehr

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5 Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5 Im Folgenden wird die Installation von MySQL 5.0 und Tomcat 5.0 beschrieben. Bei MySQL Server 5.0 handelt es sich um ein

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Installation SQL- Server 2012 Single Node

Installation SQL- Server 2012 Single Node Installation SQL- Server 2012 Single Node Dies ist eine Installationsanleitung für den neuen SQL Server 2012. Es beschreibt eine Single Node Installation auf einem virtuellen Windows Server 2008 R2 mit

Mehr

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...

Mehr

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen Anwendungshinweis Nr. 12 Produkt: Schlüsselworte: Problem: Softing OPC Easy Connect OPC Server, Redundanz Wie konfiguriere ich redundante Lösung: Ausgangssituation: Eine OPC Client-Anwendung ist mit mehreren

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

MailUtilities: Remote Deployment - Einführung

MailUtilities: Remote Deployment - Einführung MailUtilities: Remote Deployment - Einführung Zielsetzung Die Aufgabe von Remote Deployment adressiert zwei Szenarien: 1. Konfiguration der MailUtilities von einer Workstation aus, damit man das Control

Mehr

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt. Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten

Mehr

Betriebshandbuch. MyInTouch Import Tool

Betriebshandbuch. MyInTouch Import Tool Betriebshandbuch MyInTouch Import Tool Version 2.0.5, 17.08.2004 2 MyInTouch Installationshandbuch Inhaltsverzeichnis Inhaltsverzeichnis... 2 Bevor Sie beginnen... 3 Einleitung...3 Benötigte Daten...3

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

Adminer: Installationsanleitung

Adminer: Installationsanleitung Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann

Mehr

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION Allgemein Infomon bietet die Architektur für das Informations-Monitoring in einer Windows- Topologie. Die Serverfunktionalität wird in einer IIS-Umgebung

Mehr

Intrexx unter Windows Server 2008

Intrexx unter Windows Server 2008 Intrexx unter Windows Server 2008 1. Ausgangslage: Um den Intrexx Server auf einem Windows Server 2008 verwenden zu können, ist es zunächst notwendig, den Internet Information Server (IIS) zu installieren,

Mehr

2. Word-Dokumente verwalten

2. Word-Dokumente verwalten 2. Word-Dokumente verwalten In dieser Lektion lernen Sie... Word-Dokumente speichern und öffnen Neue Dokumente erstellen Dateiformate Was Sie für diese Lektion wissen sollten: Die Arbeitsumgebung von Word

Mehr

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Netzwerk einrichten unter Windows

Netzwerk einrichten unter Windows Netzwerk einrichten unter Windows Schnell und einfach ein Netzwerk einrichten unter Windows. Kaum ein Rechner kommt heute mehr ohne Netzwerkverbindungen aus. In jedem Rechner den man heute kauft ist eine

Mehr

Installation DataExpert Paynet-Adapter (SIX)

Installation DataExpert Paynet-Adapter (SIX) Projekt IGH DataExpert Installation DataExpert Paynet-Adapter (SIX) Datum: 25.06.2012 Version: 2.0.0.0 Inhaltsverzeichnis 1 Einleitung...... 2 1.1.NET Framework... 2 2 Installation von "DE_PaynetAdapter.msi"...

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger Grundlegendes Oracle9i PostgreSQL Prevayler Memory mywms bietet umfangreiche Konfigurationsmöglichkeiten um die Daten dauerhaft zu speichern.

Mehr

SharePoint Demonstration

SharePoint Demonstration SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit

Mehr

Nutzung von GiS BasePac 8 im Netzwerk

Nutzung von GiS BasePac 8 im Netzwerk Allgemeines Grundsätzlich kann das GiS BasePac Programm in allen Netzwerken eingesetzt werden, die Verbindungen als Laufwerk zu lassen (alle WINDOWS Versionen). Die GiS Software unterstützt nur den Zugriff

Mehr

Lokale Installation von DotNetNuke 4 ohne IIS

Lokale Installation von DotNetNuke 4 ohne IIS Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation

Mehr

Installation der SAS Foundation Software auf Windows

Installation der SAS Foundation Software auf Windows Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software

Mehr

Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7

Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7 Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7 Zur Arbeitserleichterung und für einen reibungslosen Übungsbetrieb ist es zwingend notwendig, sowohl

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand 01.08.2005-08-16. Copyright

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand 01.08.2005-08-16. Copyright Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand 01.08.2005-08-16 Änderungen in Dokumentation und Software sind vorbehalten! Copyright Copyright 2005 COSA GmbH Alle Rechte vorbehalten.

Mehr

Live Update (Auto Update)

Live Update (Auto Update) Live Update (Auto Update) Mit der Version 44.20.00 wurde moveit@iss+ um die Funktion des Live Updates (in anderen Programmen auch als Auto Update bekannt) für Programm Updates erweitert. Damit Sie auch

Mehr

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch Einfache und effiziente Zusammenarbeit in der Cloud EASY-PM Office Add-Ins Handbuch Inhaltsverzeichnis 1. Einführung... 3 2. Ribbonmenü... 4 3. Dokument... 5 3.1 Öffnen... 5 3.2 Speichern... 6 3.3 Speichern

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld Sharing. Auf dem Bildschirm sollte folgendes Fenster erscheinen: Einleitung Unter MacOS X hat Apple die Freigabe standardmäßig auf den "Public" Ordner eines Benutzers beschränkt. Mit SharePoints wird diese Beschränkung beseitigt. SharePoints erlaubt auch die Kontrolle

Mehr

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf

Mehr

Hex Datei mit Atmel Studio 6 erstellen

Hex Datei mit Atmel Studio 6 erstellen Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis Kommunikationsübersicht Inhaltsverzeichnis Kommunikation bei Einsatz eines MasterServer... 2 Installation im... 2 Installation in der... 3 Kommunikation bei Einsatz eines MasterServer und FrontendServer...

Mehr

Lehrveranstaltung Grundlagen von Datenbanken

Lehrveranstaltung Grundlagen von Datenbanken Verbindungsanleitung mit der Datenbank Um sich mit der Datenbank für die Übung zu verbinden, gibt es mehrere Möglichkeiten. Zum einen ist die Datenbank aus dem Netz des Informatikums direkt erreichbar.

Mehr

HINWEISE ZUR ARBEIT IM LABOR

HINWEISE ZUR ARBEIT IM LABOR HINWEISE ZUR ARBEIT IM LABOR MIT GLASSFISH UND DERBY UNTER NETBEANS 1. Grundsätzliches: Auch weiterhin arbeiten Sie im SWE-Labor remote, d.h. auf einem Server. Ihre Entwicklungsumgebung Netbeans ist dort

Mehr

FTP-Leitfaden RZ. Benutzerleitfaden

FTP-Leitfaden RZ. Benutzerleitfaden FTP-Leitfaden RZ Benutzerleitfaden Version 1.4 Stand 08.03.2012 Inhaltsverzeichnis 1 Einleitung... 3 1.1 Zeitaufwand... 3 2 Beschaffung der Software... 3 3 Installation... 3 4 Auswahl des Verbindungstyps...

Mehr

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Die hohe Kunst der aromatischen Bohnenmischung oder Replikator: Einmal Kaffee, Brasilia Highland Blend, Heiß Motivation Bean = Komponente Datenbank Zielgruppe Kommerzielle Anwendungen

Mehr

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client

Mehr

Seminar DWMX 2004. DW Session 015

Seminar DWMX 2004. DW Session 015 Seminar DWMX 2004 DW Session 015 Veröffentlichen der lokalen Website Bis jetzt sind die Daten immer lokal in Dreamweaver bearbeitet und über die interne Vorschau mit F12/Strg.+F12 im Browser betrachtet

Mehr

DB2 Kurzeinführung (Windows)

DB2 Kurzeinführung (Windows) DB2 Kurzeinführung (Windows) Michaelsen c 25. Mai 2010 1 1 Komponenten von DB2 DB2 bietet zahlreiche graphische Oberflächen für die Verwaltung der verschiedenen Komponenten und Anwendungen. Die wichtigsten

Mehr

Installation und Inbetriebnahme von SolidWorks

Installation und Inbetriebnahme von SolidWorks Inhaltsverzeichnis FAKULTÄT FÜR INGENIEURWISSENSCHAFTEN I Prof. Dr.-Ing. Frank Lobeck Installation und Inbetriebnahme von SolidWorks Inhaltsverzeichnis Inhaltsverzeichnis... I 1. Einleitung... 1 2. Installation...

Mehr

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole Lavid-F.I.S. Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der Lavid Software GmbH Dauner Straße 12, D-41236 Mönchengladbach http://www.lavid-software.net Support:

Mehr

25 Import der Beispiele

25 Import der Beispiele 25 Import der Beispiele Versuch es nicht mit Gewalt. Nimm einfach einen größeren Hammer (Murphy s Law) 25.1 Einleitung Alle Beispielprogramme dieses Buchs funktionieren mit jeder Java-konformen Entwicklungsumgebung.

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Collax E-Mail-Archivierung

Collax E-Mail-Archivierung Collax E-Mail-Archivierung Howto Diese Howto beschreibt wie die E-Mail-Archivierung auf einem Collax Server installiert und auf die Daten im Archiv zugegriffen wird. Voraussetzungen Collax Business Server

Mehr

Zentrale Installation

Zentrale Installation Einführung STEP 7 wird durch ein Setup-Programm installiert. Eingabeaufforderungen auf dem Bildschirm führen Sie Schritt für Schritt durch den gesamten Installationsvorgang. Mit der Record-Funktion steht

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

Mehr

Powermanager Server- Client- Installation

Powermanager Server- Client- Installation Client A Server Client B Die Server- Client- Funktion ermöglicht es ein zentrales Powermanager Projekt von verschiedenen Client Rechnern aus zu bedienen. 1.0 Benötigte Voraussetzungen 1.1 Sowohl am Server

Mehr

ec@ros2-installer ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg 7 64331 Weiterstadt

ec@ros2-installer ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg 7 64331 Weiterstadt ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Download des ecaros2-installer...3 2 Aufruf des ecaros2-installer...3 2.1 Konsolen-Fenster (Windows)...3 2.2 Konsolen-Fenster

Mehr

Mail-Account Unimail mit der Adresse @uni-dortmund.de Einstellungen für Outlook Express 5.0

Mail-Account Unimail mit der Adresse @uni-dortmund.de Einstellungen für Outlook Express 5.0 universität Dortmund I&K-Einheit - Computerberatung für Studierende Mail-Account Unimail mit der Adresse @uni-dortmund.de Einstellungen für Outlook Express 5.0 Um Outlook Express ab Version 5 für den Mailempfang

Mehr

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen Stand: 13.12.2010 Die BüroWARE SoftENGINE ist ab Version 5.42.000-060 in der Lage mit einem Microsoft Exchange Server ab Version 2007 SP1

Mehr

How to do? Projekte - Zeiterfassung

How to do? Projekte - Zeiterfassung How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten Der Konfigurations-Assistent wurde entwickelt, um die unterschiedlichen ANTLOG-Anwendungen auf den verschiedensten Umgebungen automatisiert

Mehr

Tutorial Einrichtung eines lokalen MySQL-Servers für den Offline-Betrieb unter LiveView

Tutorial Einrichtung eines lokalen MySQL-Servers für den Offline-Betrieb unter LiveView Tutorial Einrichtung eines lokalen MySQL-Servers für den Offline-Betrieb unter LiveView IBO Internet Software OHG Wehrstr. 6 41199 Mönchengladbach Tel. +49 (0) 2166 9989 530 Fax +49 (0) 2166 9989 535 ibo@shoppilot.de

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg 7 64331 Weiterstadt

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg 7 64331 Weiterstadt Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Inhaltsverzeichnis 1 Allgemein... 3 2 Erforderliche Anpassungen bei der Installation...3 2.1 Konfiguration Jboss 7 Applicationserver (Schritt 4/10)...3

Mehr

VIDA ADMIN KURZANLEITUNG

VIDA ADMIN KURZANLEITUNG INHALT 1 VIDA ADMIN... 3 1.1 Checkliste... 3 1.2 Benutzer hinzufügen... 3 1.3 VIDA All-in-one registrieren... 4 1.4 Abonnement aktivieren und Benutzer und Computer an ein Abonnement knüpfen... 5 1.5 Benutzername

Mehr

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html

Mehr

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Inhalt 1. Die Funambol Software... 3 2. Download und Installation... 3 3.

Mehr

Collaboration Manager

Collaboration Manager Collaboration Manager Inhalt Installationsanleitung... 2 Installation mit Setup.exe... 2 Security Requirements... 3 Farmadministrator hinzufügen... 3 Secure Store Service... 3 Feature-Aktivierung... 5

Mehr

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele: 2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

Clientkonfiguration für Hosted Exchange 2010

Clientkonfiguration für Hosted Exchange 2010 Clientkonfiguration für Hosted Exchange 2010 Vertraulichkeitsklausel Das vorliegende Dokument beinhaltet vertrauliche Informationen und darf nicht an Dritte weitergegeben werden. Kontakt: EveryWare AG

Mehr

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014 Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...

Mehr

ANLEITUNG NETZEWERK INSTALATION

ANLEITUNG NETZEWERK INSTALATION ANLEITUNG NETZEWERK INSTALATION Sehr geehrter Kunde, vielen Dank, dass Sie sich für RED CAD entschieden haben. Mit dieser Anleitung möchten wir Sie bei der Installation unterstützen. Die Netzwerkinstallation

Mehr

Shellfire L2TP-IPSec Setup Windows XP

Shellfire L2TP-IPSec Setup Windows XP Shellfire L2TP-IPSec Setup Windows XP Diese Anleitung zeigt anschaulich, wie ein bei Shellfire gehosteter VPN-Server im Typ L2TP-IPSec unter Windows XP konfiguriert wird. Inhaltsverzeichnis 1. Benötigte

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf Softwareentwicklungspraktikum Sommersemester 2007 Feinentwurf Auftraggeber Technische Universität Braunschweig

Mehr

DOKUMENTATION VOGELZUCHT 2015 PLUS

DOKUMENTATION VOGELZUCHT 2015 PLUS DOKUMENTATION VOGELZUCHT 2015 PLUS Vogelzucht2015 App für Geräte mit Android Betriebssystemen Läuft nur in Zusammenhang mit einer Vollversion vogelzucht2015 auf einem PC. Zusammenfassung: a. Mit der APP

Mehr

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Wie richten Sie Ihr Web Paket bei Netpage24 ein Wie richten Sie Ihr Web Paket bei Netpage24 ein Eine kostenlose ebook Anleitung von Netpage24 - Webseite Information 1 E-Mail Bestätigung... 3 2 Ticketsystem... 3 3 FTP Konto anlegen... 4 4 Datenbank anlegen...

Mehr

Die neue Datenraum-Center-Administration in. Brainloop Secure Dataroom Service Version 8.30

Die neue Datenraum-Center-Administration in. Brainloop Secure Dataroom Service Version 8.30 Die neue Datenraum-Center-Administration in Brainloop Secure Dataroom Service Version 8.30 Leitfaden für Datenraum-Center-Manager Copyright Brainloop AG, 2004-2014. Alle Rechte vorbehalten. Dokumentversion:

Mehr

Migration NVC 5.x auf NEM/NPro (Migration eines bestehenden, produktiven NVC Verteilservers auf NEM/NPro)

Migration NVC 5.x auf NEM/NPro (Migration eines bestehenden, produktiven NVC Verteilservers auf NEM/NPro) Migration NVC 5.x auf NEM/NPro (Migration eines bestehenden, produktiven NVC Verteilservers auf NEM/NPro) 1. Vorbereitung/Hinweise Norman Endpoint Manager und Norman Endpoint Protection (NEM/NPro) kann

Mehr

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen Um die maximale Sicherheit für das Betriebssystem und Ihre persönlichen Daten zu gewährleisten, können Sie Programme von Drittherstellern

Mehr

Online Banking System

Online Banking System Online Banking System Pflichtenheft im Rahmen des WI-Praktikum bei Thomas M. Lange Fachhochschule Giessen-Friedberg Fachbereich MNI Studiengang Informatik Erstellt von: Eugen Riske Yueksel Korkmaz Alper

Mehr

Speichern. Speichern unter

Speichern. Speichern unter Speichern Speichern unter Speichern Auf einem PC wird ständig gespeichert. Von der Festplatte in den Arbeitspeicher und zurück Beim Download Beim Kopieren Beim Aufruf eines Programms Beim Löschen Beim

Mehr

Windows 8 Lizenzierung in Szenarien

Windows 8 Lizenzierung in Szenarien Windows 8 Lizenzierung in Szenarien Windows Desktop-Betriebssysteme kommen in unterschiedlichen Szenarien im Unternehmen zum Einsatz. Die Mitarbeiter arbeiten an Unternehmensgeräten oder bringen eigene

Mehr

Sichern der persönlichen Daten auf einem Windows Computer

Sichern der persönlichen Daten auf einem Windows Computer Sichern der persönlichen Daten auf einem Windows Computer DIRECTION DES SERVICES IT SERVICE DIT-MI DIREKTION DER IT-DIENSTE DIENSTSTELLE DIT-MI 1/9 1 Inhaltsverzeichnis 2 Einleitung... 3 3 Outlook Daten...

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

KURZANLEITUNG CLOUD OBJECT STORAGE

KURZANLEITUNG CLOUD OBJECT STORAGE KURZANLEITUNG CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung... Seite 03 2. Anmelden am Cloud&Heat Dashboard... Seite 04 3. Anlegen eines Containers... Seite 05

Mehr