WildFly – Debug-Mode aktivieren und mit Eclipse verbinden

Um eine Anwendung im WildFly Applicationserver deployte Anwendung zu debuggen muss eine Debug-Verbindung zwischen IDE und Server hergestellt werden. Dies ist mit wenigen Handgriffen erledigt. Dazu wird zunächst WildFly im Debug-Mode gestartet, indem es mit dem Parameter –debug gestartet wird: „WILDFLY_HOME\bin\standalone.bat –debug“.
Wird der WildFly Server zur Entwicklung genutzt empfiehlt es sich ihn so zu konfigurieren, das er dauerhaft im Debug-Mode startet. Dies kann in der Batchdatei zum Starten dauerhaft aktiviert werden. „WILDFLY_HOME\standalone\bin\standalone.bat“:

set DEBUG_MODE=true
set DEBUG_PORT=8787

Eclipse Debug Konfiguration
Wenn WildFly im Debug-Mode läuft muss nur noch aus Eclipse eine TCP/IP Verbindung zum Port 8787 des WildFly Servers hergestellt werden. Die Eclipse-Konfiguration kann den Bildern entnommen werden. Im Beispiel läuft der Server auf dem lokalen Rechner. Ist dies nicht der Fall muss die IP Adresse des entfernten Widfly Servers genutzt werden. Nachdem die Verbindung zwischen Eclipse und WildFly hergestellt ist, werden Breakpoints die in der linken Leiste im Quellcode gesetzt werden aktiv. Zu erkennen an dem kleinen Häkchen.
Eclipse - WildFly Debug Connection

WildFly – Systemproperties konfigurieren und auslesen

Im WildFly Anwendungsserver können über die Systemproperties Werte gesetzt werden auf die die deployten Anwendungen zugreifen können. Dies stellt einen einfachen Weg zum Konfigurieren von Anwendungen dar. Die Konfiguration wird in der Datei „/WILDFLY_HOME/standalone/configuration/standalone.xml“ vorgenommen:

<server xmlns="urn:jboss:domain:1.3">
  <extensions>
  ...
  </extensions>
  <system-properties>
    <property name="property1name" value="property1value"/>
    <property name="property2name" value="property2value"/>
  </system-properties>
	...
</server>

Auslesen der Systemproperties im Java Programm:

String valueProperty1 = System.getProperty("property1name");

Betriebssystem Umgebungsvariablen auslesen

Auch auf die Systemvariablen des Betriebssystem lässt sich zugreifen:

System.getenv("NAME_DER_UMGEBUNGSVARIABLE ");

WildFly – Administration über die Webkonsole, CLI und Standalone.xml

WildFly speichert seine Konfiguration XML-formatiert in einer Datei ab. Die Konfiguration des Server kann direkt in dieser Datei erfolgen, oder alternativ über die Weboberfläche oder das Command Line Interface. Im folgenden werden die unterschiedlichen Wege kurz vorgestellt.

Weboberfläche

Wildfly stellt auf Port 9990 eine Weboberfläche zur Konfiguration einiger Systemeinstellungen bereit und liefert Informationen zur JVM und Systemumgebung. Zu einigen Subsystem werden Daten angezeigt und Konfigurationsmöglichkeiten angeboten. Dazu zählen u.a. Datasources, JPA, JNDI, Transactions und Webservices.

Bevor auf die Webmanagement-Oberfläche zugegriffen werden kann muss ein Management-User angelegt werden. Dazu führen Sie das Skript „add-user.bat“ unter Windows (wildfly_root\bin\add-user.bat) oder „add-user.sh“ unter Linux aus und folgen den Anweisungen.
Anschließend kann sich mit dem neuen Benutzer angemeldet werden:

http://127.0.0.1:9990/
Wildfly Webmanagement

Wildfly Webmanagement

CLI – Command Line Tool

Wildfly_CLI_GUI
Seit JBoss AS 7 gibt es ein Command Line Interface (CLI) Tool mit dem man sich zum Server verbinden kann und diverse Aufgaben durchführen kann. U.a:

  • Anwendungen im Standalone/Domain Mode deployen oder undeployen
  • Informationen zu deployten Anwendungen anzeigen
  • Starten, stoppen und neustarten des Servers
  • Hinzufügen, ändern und löschen von Subsystemen
  • Anzeige von Logdateien

    • Das CLI Tool wird über ein Skript (jboss-cli.bat oder sh) im Bin-Verzeichnis gestartet.

      "WILDFLY_HOME/bin/jboss-cli.bat"

      Mit dem Parameter gui „jboss-cli.bat –gui“ kann die Konsole in einer grafischen Ausführung gestartet werden:

      XML Konfigurationsdatei

      Wildfly speichert seine Konfiguration als XML formatierte Datei ab. Diese liegt für Standalone-Anwendungen in „WILDFLY_HOME/standalone/configuration/standalone.xml“ und für geclusterte Anwendungen, die in einer Domain zusammengefasst werden und sich eine Konfiguration teilen, in „WILDFLY_HOME/domain/configuration/domain.xml“.

      Die Konfigurationsdatei enthält für jedes Subsystem einen einzelnen Konfigurationsblock. Einige der häufiger benötigten Subsysteme sind u.a. Datasources zur Verbindung zu Datenbanken, Mail und Logging. Im unteren Part finden sich mit den Interfaces und Socket-Binding-Groups die Konfigurationseinstellungen auf welchen Ports der Wildfly Server Dienste bereit stellt. Hier ist z.B. konfiguriert, das der Server mit den Default-Einstellungen seine Dienste nur auf der lokalen IP-Adresse bereitstellt (localhost – 127.0.0.1)

WildFly – Installieren und als Dienst ausführen

Wildfly- UmgebungsvariableWildfly ist ein Application Server für Java Anwendungen der den Java EE Standard implementiert. Er ist leicht zu installieren, da es ausreicht ein aktuelles Java JRE oder JDK auf dem System zu installieren und das Wildfly Zip-Archiv zu entpackt. Die Systemvariablen sollten um eine Variable „WILDFLY_HOME“ erweitert werden, die auf das Root-Verzeichnis des Wildfly Servers zeigt. (Win7: Rechtsklick Computer -> Eigenschaften -> Erweiterte Systemeinstellungen -> Umgebungsvariablen) (Siehe Screenshot) Unter Linux wird die Systemvariable mit dem Export Befehl gesetzt: „export WILDFLY_HOME=/opt/wildfly/“

Zum Starten des Servers reicht es unter Windows die Datei „standalone.bat“ oder unter Linux die Datei „standalone.sh“ im „bin“ Verzeichnis zu starten. In einer Produktivumgebung empfiehlt es sich WildFly als Windows-Dienst oder Linux Service einzurichten.

Wildfly als Windowsdienst einrichten

Gegenüber dem JBoss AS7 ist die Installation des WildFy Anwendungsservers als Windowsservice sehr einfach, da bereits alles „ab Werk“ mit ausgeliefert wird. Dazu wird lediglich die Batchdatei „WILDFLY_HOME\bin\service\service.bat“ mit dem Parameter „install“ aufgerufen. Die Verwaltung des Dienstes inklusive Starten und Stoppen erfolgt wie gewohnt über die Computerverwaltung. Siehe Screenshot. (Windows7: Rechtsklick Computer Icon -> Verwalten -> Dienste – und Anwendungen Dienste)

Wildfly Windowsservice

Wildfly Windowsservice

WildFly als Linux Service einrichten

Um WildFly als Linux Service einzurichten werden die Skripte aus dem Verzeichnis „WILDFLY_HOME/bin/init.d“ verwendet. In diesem Verzeichnis finden sich die folgenden Skripte:

wildfly-init-redhat.sh: Dieses Skript wird für Red Hat Enterprise Linux Distributions verwendet wie RHEL oder Centos.
wildfly-init-debian.sh: Dieses Skript wird für Debian basierende Distributionen wie Debian oder Ubuntu verwendet.
wildfly.conf: Diese Datei enthält die Konfiguration für die beiden oben genannten Init-Skripte.

1. WildFly nach „/opt/wildfly“ entpacken oder kopieren. z.B. mit WinSCP. Sofern das Java JRE installiert ist, kann der WildFly Server bereits testweise gestartet werden, indem das Shell Skript „WILDFLY_HOME/bin/standalone.sh“ ausgeführt wird.

cd /opt/wildfly/bin/
./standalone.sh
Wenn die Berechtigungen nicht zum Ausführen des Skriptes reichen müssen sie entsprechend gesetzt werden:
chmod 777 standalone.sh

2. Das zur Linux Distribution passende Skript wird in das Verzeichnis „/etc/init.d“ kopiert. Für RHEL sieht dies ausgehend vom Verzeichnis „WILDFLY_HOME/bin/init.d“ wie folgt aus:

cp wildfly-init-redhat.sh /etc/init.d/wildfly

3. Die Konfigurationsdatei „wildfly.conf“ muss in das Verzeichnis „/etc/default/wildfly“ kopiert werden, damit das Startskript sie findet:

mkdir /etc/default/wildfly
cp wildfly.conf /etc/default/wildfly

4. Anschließend wird die Konfigurationsdatei angepasst. Dazu kann der Editor Nano oder vi genutzt werden:

nano /etc/default/wildfly/wildfly.conf

Der Pfad zum Java JDK und der User unter dem der Wildfly Service ausgeführt werden sollen müssen entsprechend angepasst werden. Ein neuer User kann mit dem Befehl „adduser“ angelegt werden:

JAVA_HOME=/usr/java/jdk1.7.0_21
# Location of WildFly
JBOSS_HOME=/usr/share/wildfly.8.0.0.Final
# The username who should own the process.
JBOSS_USER=wildfly
# The mode WildFly should start, standalone or domain
JBOSS_MODE=standalone
# Configuration for standalone mode
JBOSS_CONFIG=standalone.xml

5. Als nächstes wird dem Befehl „chkconfig“ das Wildfly Skript als Dienst eingerichtet. Der zweite Befehl setzt die Runlevel in denen der Dienst gestartet wird.

chkconfig --add wildfly
chkconfig --level 2345 wildfly on

6. Sofern alles richtig konfiguriert ist lässt sich der WildFly Service wie folgt starten und stoppen:

service wildfly start
service wildfly stop