2 Installation, erste Schritte und der Dateibaum

Werbung
19
2
Installation, erste Schritte und der
Dateibaum
Dieses Kapitel beschreibt die Basisinstallation des JBoss-Servers. Nach
der Installation wird die Beispielapplikation aus Kapitel 3 gestartet, um
so die Funktionstüchtigkeit des installierten Servers zu überprüfen.
Fortgeschrittenere Themen der Installation und Konfiguration werden im Kapitel 5 beschrieben.
2.1
Bezug
JBoss kann von http://sourceforge.net/projects/jboss/ bezogen werden. Von der JBoss-Webseite http://www.jboss.org/ aus gibt es auch
einen Link zum Downloadbereich. Bei manchen Betriebssystemen wie
beispielsweise MacOS X oder Suse Enterprise Server 9 ist eine Version
des JBoss-Servers bereits im Lieferumfang enthalten.
2.2
Installation
Als vollständig in Java geschriebener J2EE-Server benötigt JBoss eine
Java 2 Standard Edition (J2SE) als Laufzeitumgebung. Falls Sie nur bestehende Applikationen laufen lassen wollen, die keine JSP-Seiten enthalten, reicht eine Laufzeitumgebung (JRE) aus. Ansonsten wird eine
Entwicklungsumgebung (Software Development Kit, SDK, auch synonym als JDK bezeichnet) benötigt.
Im Rahmen dieses Buches empfiehlt es sich jedoch, gleich die Entwicklungsumgebung, JDK, zu installieren.
2.2.1 Java-Laufzeitumgebung installieren
JBoss 3.2 ist prinzipiell auf 1.3- und 1.4-Versionen der J2SE lauffähig.
Seit JBoss 3.2.5 wird auch die J2SE 5.0 unterstützt. JBoss 4 benötigt
mindestens eine Version 1.4 der Java 2 Standard Edition, da der J2EE1.4-Standard diese Version der JVM vorschreibt. Da JBoss 3.2 in der
Download bei
SourceForge
20
2 Installation, erste Schritte und der Dateibaum
$JAVA_HOME
Regel mit einem JDK 1.4 übersetzt wird, sollte hier ebenfalls ein JDK
1.4 zum Einsatz kommen. Wenn Sie sich den Quelltext von JBoss holen,
können Sie JBoss 3.2 auch mit einem JDK 1.3 übersetzen und in Betrieb
nehmen1 .
Packen Sie das SDK in ein Verzeichnis Ihrer Wahl aus (z.B. /opt/
oder D:). Der Verzeichnisname sollte keine Leerzeichen im Pfad enthalten (z.B. C:\Dokumente und Einstellungen). Hier wird ein Unterverzeichnis in der Form j2sdk1.4.3 angelegt. Auf dieses Verzeichnis werden
wir in Zukunft als $JAVA_HOME verweisen.
2.2.2 JBoss-Server installieren
Das JBoss-Paket wird in verschiedenen Formaten bereitgestellt. Je nach
Format des Archivs müssen Sie also das entsprechende Programm zum
Entpacken zu Hilfe nehmen. Unter Unix oder Linux wird dabei gemeinhin das .tgz- oder .tar.gz-Format verwendet, das Sie z.B. über
tar -xfz jboss-4.0.1.tar.gz
$JBOSS_HOME
entpacken können.
Unter Windows ist das .zip-Format gebräuchlicher. Werkzeuge hierfür sind pkunzip und Verwandte; Windows XP hat die Funktionalität,
um gezippte Archive öffnen zu können, bereits eingebaut.
Packen Sie nun auch JBoss in ein Verzeichnis Ihrer Wahl (z.B.
/opt/). Hier wird ebenfalls ein neues Unterverzeichnis entstehen (z.B.
/opt/jboss-4.0.1), auf welches wir als $JBOSS_HOME verweisen werden. Die Abbildung am Rand zeigt die oberste Verzeichnisebene des
Servers. Die einzelnen Verzeichnisse werden in Abschnitt 4.5 ab Seite
114 genauer beschrieben.
2.2.3 Startskripte anpassen
run.conf
Falls die Umgebungsvariable $JAVA_HOME nicht gesetzt ist oder auf eine
Java-Umgebung zeigt, die nicht der oben installierten entspricht, müssen noch die Dateien $JBOSS_HOME/bin/run.conf (unter Unix) beziehungsweise $JBOSS_HOME/bin/run.bat (Windows) angepasst werden. Dabei müssen jeweils die Werte der Variable JAVA_HOME auf
den Wert von $JAVA_HOME von oben (also im obigen Beispiel auf
/opt/j2sdk1.4.3) gesetzt werden.
run.conf JAVA_HOME=/opt/j2sdk1.4.3
run.bat set JAVA_HOME=d:\j2sdk1.4.3
1
Der J2EE-1.3-Standard schreibt vor, dass J2EE-1.3-Server mit einer JRE
1.3 lauffähig sein müssen.
2.3 Der erste Start
21
Die Umgebungsvariable JAVA_HOME kann alternativ auch in entsprechenden Login-Skripten oder den Umgebungsvariablen des Desktops
gesetzt werden.
2.2.4 Betrieb ohne Display konfigurieren
Einige Java-Bibliotheken, speziell im Bereich der Erstellung von Grafiken, gehen davon aus, dass der Benutzer vor einem grafischen Terminal sitzt. Im Serverbereich ist dies aber nicht immer der Fall. Wenn
solche Bibliotheken nicht funktionieren, weil z.B. unter Unix kein
X-Server vorhanden ist, kann man in den JAVA_OPTS die Option
-Djava.awt.headless=true mit angeben.
2.2.5 Speicher für die JVM festlegen
Die Java Virtual Machine beschränkt normalerweise ihren Speicherbedarf auf 128 Megabyte. Für größere Applikationen kann dies nicht genug sein. Mittels der Option -Xmxnn kann der maximale Speicherbedarf
festgelegt werden. Diese Option wird auch mit in den JAVA_OPTS angegeben. Der Wert von nn ist dabei als Zahl mit Größenangabe zu sehen
(z.B. 512M für 512 Megabyte).
Mittels -Xmsnn kann der minimale Speicherbedarf festgelegt werden.
Dadurch allokiert die JVM beim Start gleich mehr Speicher, was den
Start des Servers etwas beschleunigen kann.
Generell sollte man nicht mehr Speicher mittels -Xmx anfordern, als
physikalischer Speicher im Rechner für den Java-Prozess verfügbar ist.
Dies hat damit zu tun, dass die Virtual Machine von Zeit zu Zeit eine
Garbage Collection durchführt, welche alle Objekte daraufhin untersuchen muss, ob sie noch verwendet werden oder gelöscht werden können. Werden nun Teile der JVM auf die Festplatte ausgelagert, müssen
diese Objekte für die Garbage Collection erst wieder eingelagert werden, was Zeit kostet.
2.3
Der erste Start
Bitte stellen Sie vor dem Start sicher, dass keine anderen Applikationen laufen, welche die diversen Ports, die JBoss öffnet, belegt halten.
Kandidaten hierfür sind beispielsweise Webserver, die auf Port 8080
lauschen (eine ausführliche Liste gibt es in Abschnitt 5.7 auf Seite 201).
Die Überprüfung kann über das Kommando netstat erfolgen:
$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address
Foreign Address
-Xmx
-Xms
22
2 Installation, erste Schritte und der Dateibaum
tcp
tcp
tcp
tcp
0
0
0
0
0
0
0
0
0.0.0.0:2401
0.0.0.0:995
0.0.0.0:389
0.0.0.0:5222
0.0.0.0:*
0.0.0.0:*
0.0.0.0:*
0.0.0.0:*
Vergleichen Sie dabei die Zahl hinter dem Doppelpunkt in der Spalte
»Local Address« mit den von JBoss verwendeten Ports. Ist einer dieser Ports benutzt und erscheint damit in der Netstat-Ausgabe, sollten
Sie den entsprechenden Dienst herunterfahren. Alternativ können Sie
auch die von JBoss verwendeten Ports ändern. Dies ist in Abschnitt 5.6
beschrieben.
Der Server kann nun über das entsprechende Startskript gestartet
werden.
Unix sh $JBOSS_HOME/bin/run.sh
Windows $JBOSS_HOME\bin\run.bat
Auf der Konsole sollte eine ganze Reihe von Ausgaben erscheinen, die
am Schluss in einer der Folgenden ähnlichen enden:
20:21:30,573 INFO [Server] JBoss (MX MicroKernel) [4.0.0
(build: CVSTag=JBoss_4_0_0 date=200409200418)]
Started in 26s:559ms
Nach Erscheinen dieser Meldung ist der Server vollständig gestartet.
Falls bei Start eines frisch installierten Servers Fehler auftreten, ist es
ratsam, in JAVA_HOME/jre/lib/ext/ nach Klassen zu suchen, die über
die vom Hersteller der JVM hinausgehen. Diese werden vor den JBossKlassen geladen und können damit die JBoss-Klassen überdecken.
2.4
Default-Konfiguration
Die Beispielapplikation starten
Die Beispielapplikation aus Kapitel 3 ist in vorkompilierter Form unter der URL http://bsd.de/jbb/ verfügbar. Es wird davon ausgegangen,
dass für die Applikation eine unveränderte »default«-Konfiguration von
JBoss 4.0.1 oder höher zur Verfügung steht, da in der vorkompilierten Version auch die Webservices und die Erweiterung aus dem Kapitel
über JBossMQ enthalten sind. Holen Sie das Archiv mit der Applikation und speichern Sie sie auf Ihrer Festplatte ab. In diesem Archiv sind
mehrere Dateien:
❏ adb-app.ear: Die eigentliche Applikation. Kopieren Sie diese nach
$JBServer/deploy/.
❏ adbQueue-serivce.xml: Eine Definition für die verwendete Queue.
Kopieren Sie diese ebenfalls nach $JBServer/deploy/.
2.5 JBoss stoppen
23
❏ login.config.txt: Die verwendete Login-Konfiguration (siehe un-
ten).
❏ client.jar: Kommandozeilen-Client: Die Verwendung wird in Kapitel 3 gezeigt.
Vor dem Starten des Servers müssen noch die Security-Einstellungen angepasst werden. Fügen Sie den in Abbildung 3.32 auf Seite 78 gezeigten
Block nach dem <policy>-Element in die Datei conf/login-config.xml
ein. Dieser Block ist auch im Archiv in der Datei login.config.txt enthalten.
Starten Sie nun den Server wie oben gezeigt. Es folgen einige Ausgaben und eine Meldung ähnlich der folgenden:
14:34:36,514 INFO [EARDeployer] Started J2EE application: file:/D:/jboss4/server/default/deploy/adb-app.ear
Nun können Sie die Anwendung unter der URL
http://localhost:8080/adb/
ansprechen. Eine mögliche Benutzer/Passwort-Kombination ist elke/abc.
2.5
Passwort für
Applikation
JBoss stoppen
Die einfachste Art, den Server zu stoppen, wenn dieser wie oben beschrieben von der Konsole aus gestartet wurde, ist Ctrl-C zu drücken.
Der Server fängt an, alle Dienste zu stoppen und schreibt schließlich die
folgende Meldung auf die Konsole. Bitte warten Sie diese Meldung ab,
bevor Sie das Konsolenfenster schließen, damit alle Dienste ordentlich
gestoppt werden und eine Chance bekommen, notwendige Daten auf
Festplatte oder in einer Datenbank zu speichern. Dies betrifft insbesondere auch die eingebaute Hsqldb-Datenbank.
19:46:16,938 INFO [Server] Shutdown complete
Shutdown complete
Halting VM
Wurde der Prozess im Hintergrund oder beim Systemstart gestartet,
kann man ihn auch über das mitgelieferte Shutdown-Skript stoppen.
Windows $JBOSS_HOME\bin\shutdown.bat -S
Unix sh $JBOSS_HOME/bin/shutdown.sh -S
Shutdown-Skript
24
2 Installation, erste Schritte und der Dateibaum
Nach Beendigung des Skripts müssen Sie in den Logfiles kontrollieren,
dass der Server wirklich heruntergefahren ist. Alternativ kann dies auch
über den Taskmanager oder das ps-Kommando geschehen.
Weiter unten, wenn die JMX-Konsole vorgestellt wird (siehe Abschnitt 5.5.1 auf Seite 189), werden wir noch eine andere Alternative
kennen lernen, um den Server anzuhalten.
2.6
JBoss-Dateibaum
Der Dateibaum innerhalb von $JBOSS_HOME sieht bei einer Standardinstallation wie folgt aus. Einige der Pfade können beim Serverstart über die Variable JAVA_OPTS in run.conf oder run.bat umgesetzt
werden. Dabei sind die Angaben als java.lang.Property anzugeben,
also beispielsweise
JAVA_OPTS="-Djboss.server.temp.dir=/var/run/jboss"
Dateibaum
um das Verzeichnis für temporäre Dateien des Servers nach
/var/run/jboss zu legen2 . Die Namen der Propertys sind in der folgenden
Auflistung in Klammern mit angegeben.
bin Startskripte siehe Abschnitt 2.3 auf Seite 21.
client Bibliotheken für Client-Applikationen, die nicht innerhalb der
JVM des JBoss-Servers laufen.
docs Diverse Dokumentation, Beispiele und Vorlagen.
dtd Document Type Definitions (DTD) für DeploymentDeskriptoren. JBoss nutzt diese lokalen Kopien der DTDs,
um die XML-Konfigurationsdateien auf ihre Gültigkeit hin
zu überprüfen.
examples Vorlagen für verschiedene Dienste.
binding-manager Über den Binding-Manager können die
Portnummern etc. global (um)gesetzt werden. Dies wird
in Abschnitt 5.6.2 beschrieben.
jca Vorlagen für die Einbindung von Datenbanken. Die Verwendung der Vorlagen wird in Abschnitt 5.3.3 anhand
einer Oracle-Datenbank demonstriert.
jms Beispiele für Konfigurationsdateien des Persistenzmanagers des JBossMQ-Subsystems.
2
Das nahe liegende Verzeichnis /tmp eignet sich nicht so gut, da unter UnixSystemen dieses Verzeichnis oftmals automatisch aufgeräumt wird, so dass
plötzlich Teile einer Anwendung nicht mehr funktionieren, die vorher eine Woche lang ohne Probleme gelaufen sind.
2.6 JBoss-Dateibaum
25
netboot Das netboot.war-Archiv. Dies wird in Abschnitt
5.1.2 beschrieben.
varia Diverse Beispiele.
licenses DiesesVerzeichnis beinhaltet die Lizenzdokumente der
verwendeten Bibliotheken.
schema J2EE 1.4 nutzt im Gegensatz zu der Version 1.3 keine
DTD, sondern XML Schema zur Definitionder DeploymentDeskriptoren. Diese Schemata sind in diesem Verzeichnis abgelegt.
lib Bibliotheken, die für den initialen Start des Servers benötigt werden. Bibliotheken, die Sie für eigene Programme benötigen, werden hier allerdings nicht abgelegt, sondern im lib/-Verzeichnis der
jeweiligen Serverkonfiguration.
server Verschiedene Serverkonfigurationen. Im Folgenden wird nur
die »Default«-Konfiguration ausführlich beschrieben. Pro JBossInstanz kann nur eine dieser Konfigurationen gleichzeitig aktiv sein. Die jeweilige Instanz wird gestartet, indem beim
Aufruf des Startskripts die Option -c conf angegeben wird,
wobei conf der Name der gewünschten Konfiguration ist
(jboss.server.base.dir). Der Name der Konfiguration ist auch in
jboss.server.name verfügbar.
Im Falle der Default-Konfiguration ist die Angabe von -c konfiguration nicht notwendig.
4.0
4.0
run –c <config>
all Eine Konfiguration, in der alle Dienste inklusive Clustering
und Farming angeschaltet sind.
default In JBoss 4.0.0 ist default die minimale Konfiguration, die
notwendig war, um die J2EE-1.4-Kompatibilitätssuite von
Sun zu bestehen. In 3.2 ist default die Standardkonfiguration, die sie ab JBoss 4.0.1 auch wieder ist. Auf dieses Verzeichnis wird im Folgenden als $JBServer referenziert.
conf Konfigurationsdateien für den Server. Auf diese wird
weiter unten (Abschnitt 5.2) noch genauer eingegangen
(jboss.server.config.url).
data In diesem Verzeichnis werden verschiedene Laufzeitdaten abgelegt. Die Hsqldb-Datenbank legt hier ihre Daten ab, genauso wie der weiter unten beschriebene Persistenz-Mechanismus für XMBean-Attribute. Des Weiteren nutzt der EJB-Container dieses Verzeichnis je nach
JBoss-Version, um darin Stateful SessionBeans zu passivieren (jboss.server .data.dir).
Default-Server. Dieser
wird gestartet, wenn
bin/run.sh ohne
–c-Parameter gestartet
wird.
26
2 Installation, erste Schritte und der Dateibaum
deploy Hier werden die zu startenden Applikationen abgelegt.
lib Alle Bibliotheken, die der Server benötigt oder die für
mehr als eine Applikation benötigt werden, sind hier abgelegt.
log Die Logfiles des Servers und der Webcontainer werden
hier abgelegt. Diese Lokation kann in conf/log4j.xml geändert werden.
tmp Hier werden zum einen Stateful SessionBeans abgelegt,
wenn sie vom Container bei der Passivierung ausgelagert werden (ebenso wie oben abhängig von der JBossVersion). Zum anderen packt der Server hier die Archive
aus deploy/ aus, bevor sie gestartet werden
(jboss.server.temp.dir).
work Tomcat nutzt dieses Verzeichnis, um darin JSP-Seiten
in Servlets zu wandeln und diese dann zu kompilieren. Wenn bei der Entwicklung von JSPs Fehler in der
Webseite gezeigt werden, die mit einem fehlgeschlagenen Übersetzungsvorgang zusammenhängen, ist es oft
hilfreich, hier den aus der JSP-Seite erzeugten ServletQuelltext anzusehen.
4.0
minimal Eine Konfiguration, bei der nur das Logging, JNDI und
das Starten von MBeans angeschaltet ist. Insbesondere hat
diese Konfiguration keine Möglichkeit, EJB-Applikationen
ohne weiteres Zutun zu starten.
standard Diese Konfiguration entspricht in JBoss 4.0.0 der
Default-Konfigurationin JBoss-3.2-Servern und ist ab
JBoss 4.0.1 wieder verschwunden.
Eigene Konfigurationen
Wenn Sie mit einer der Standardkonfigurationen nicht zufrieden sind,
empfiehlt es sich, eine der Standardkonfigurationen zu kopieren und
dann die Teile zu entfernen oder hinzuzufügen, die Sie benötigen. Damit
erhalten Sie sich die Standardkonfigurationen als Vorlagen und können
Ihre Änderungen mit diesen vergleichen. Diese eigene Konfiguration
wird dann ebenfalls über die –c-Option von bin/run.sh oder bin/run.bat
gestartet.
Speziell in JBoss 4.0.0 beinhaltet die Default-Konfiguration z.B.
den iiop-service für Corba oder eine ebxml-Registry, die im normalen
2.6 JBoss-Dateibaum
Betrieb mit EJBs und Servlets nicht benötigt werden. Das JBossMQSubsystem muss ebenfalls nicht gestartet werden, wenn keine asynchrone Kommunikation über JMS durchgeführt werden soll, so dass der
jms/-Ordner in diesem Fall genauso nicht benötigt wird.
Im nächsten Kapitel wird eine solche eigene Konfiguration für die
Beispielapplikation angelegt.
27
Herunterladen