Java Service Wrapper Integrationsmethoden

Zur Zeit gibt es vier verschiedene Integrationsmöglichkeiten, mit der eine Java-Anwendung mit dem Java Service Wrapper integriert werden kann. Drei der Methoden können sofort eingesetzt werden, ohne dass ein zusätzlicher Programmieraufwand notwendig wäre.

In einem ersten Schritt gilt es, zu entscheiden, welche der folgenden vier Methoden für Ihre Anwendung am besten geeignet ist. Nach einem kurzen Überblick über jede der vier genannten Optionen folgt eine detaillierte Beschreibung, wie eine Anwendung unter Verwendung jeweils einer dieser Methoden zu integrieren ist.

Integrationsmethode 1 (WrapperSimpleApp)

Methode 1 verwendet die Hilfsklasse WrapperSimpleApp, um eine Anwendung zu starten. Dies ist bei weitem der einfachste Weg, diese mit dem Wrapper zu integrieren und, wenn möglich, auch die am meisten empfohlene Integrationsmethode.

Details

Es gibt jedoch einige Punkte, die bei Anwendung dieser Methode, zu beachten sind. Es gibt keinen direkten Aufruf an eine Anwendung sich ordnungsgemäß zu beenden, wenn der Wrapper die JVM herunterfährt. Der Wrapper fährt die JVM durch den Aufruf (innerhalb der JVM) von System.exit() herunter. Hat eine Anwendung einen eigenen Shutdown-Hook registriert, so wird dieser aufgerufen und bietet somit der Anwendung eine Möglichkeit sich ordnungsgemäß zu beenden. Ist kein Shutdown-Hook registriert, so wird die Anwendung sofort beendet, gleichsam der Verwendung von STRG-C in einem Konsolen-Fenster (Befehlsfenster). In beiden Fällen, mit oder ohne Shutdown-Hook, verhält sich die Anwendung gleich einer Ausführung ohne Wrapper.

Sie finden eine detaillierte Übersicht und Anweisungen am Beispiel der HelloWorld-Anwendung für Windows oder Linux/UNIX.

Integrationsmethode 2 (WrapperStartStopApp)

Methode 2 verwendet die Hilfsklasse WrapperStartStopApp. Diese Methode bietet die Möglichkeit zur Integration mit Anwendungen wie Tomcat, die mittels einer Klasse gestartet ("Start"-Klasse) und mittels einer anderen Klasse gestoppt ("Stop"-Klasse) werden.

Details

Typischerweise öffnet diese Art von Anwendung beim Aufruf einen Server-Socket, der auf eine Verbindung wartet, die das Beenden auslöst. Durch Herstellung einer Verbindung zur Anwendung löst die "Stop"-Klasse schließlich das Beenden der Anwendung aus.

Der Wrapper startet Anwendungen dieser Art unter Verwendung einer "Start"-Klasse wie in Methode 1, und ruft im Fall des Beendens der Anwendung die main-Methode der "Stop"-Klasse auf.

Sie finden eine detaillierte Übersicht und Anweisungen am Beispiel Tomcat für Windows oder Linux/UNIX.

Integrationsmethode 3 (WrapperListener)

Methode 3 bietet Zugriff auf alle Wrapper-Funktionen und damit die größte Flexibilität, ist aber auch die einzige Methode, die zusätzliche Programmierschritte benötigt, um eine vollständige Integration zu gewährleisten. Diese Methode beinhaltet die Erstellung einer Klasse, welche die Schnittstelle WrapperListener implementiert. Eine Instanz dieser Klasse wird danach instanziert und mit dem WrapperManager registriert.

Details

Methode 3 bietet zwar Funktionen, welche bei Anwendung der ersten beiden Methoden nicht verfügbar sind (sowohl WrapperSimpleApp als auch WrapperStartStopApp), fügt dem Programmcode jedoch auch einige Komplexität hinzu. Es ist jedoch die einzige Methode, die es vom Benutzer erstelltem Code erlaubt, System-Control-Events zu empfangen und direkt darauf zu reagieren, sowie die Start-Up- und Shut-Down-Prozesse zu kontrollieren.

Sollten diese zusätzlichen Funktionen nicht benötigt werden, wird empfohlen, Methode 1 (WrapperSimpleApp) unter Verwendung eines Shutdown-Hooks zu aktivieren oder eine "Stop"-Klasse zu verwenden. Die Main-Methode einer solchen "Stop"-Klasse kann hierbei so einfach gehalten werden wie der Aufruf einer Methode zum Beenden innerhalb der Anwendung.

In den meisten Anwendungsfällen sind diese zusätzlichen Kontrollmöglichkeiten nicht nötig, da die Help-Klassen von Methode 1 (WrapperSimpleApp) und Methode 2 (WrapperStartStopApp) die Aufgabe des Startens und Beendens der Anwendung zur passenden Zeit übernehmen.

Sie finden eine detaillierte Übersicht und Anweisungen auf der Seite plattformunabhängig.

Integrationsmethode 4 (WrapperJarApp)

Die vierte und letzte Methode verwendet die Hilfsklasse WrapperJarApp, um eine Anwendung zu starten. Sie bietet eine einfache Möglichkeit, um eine Anwendung, die bereits als ausführbare jar-Datei konfiguriert ist, mit dem Wrapper zu integrieren.

Details

Es gibt jedoch einige Punkte, die bei Anwendung dieser Methode, zu beachten sind. Es gibt keinen direkten Aufruf an eine Anwendung, sich ordnungsgemäß zu beenden, wenn der Wrapper die JVM herunterfährt. Der Wrapper fährt die JVM durch den Aufruf (innerhalb der JVM) von System.exit() herunter. Hat eine Anwendung einen eigenen Shutdown Hook registriert, so wird dieser aufgerufen und bietet somit der Anwendung eine Möglichkeit, sich ordnungsgemäß zu beenden. Ist jedoch kein Shutdown Hook registriert, so wird die Anwendung sofort beendet, gleichsam der Verwendung von STRG-C in einem Konsolen-Fenster. In beiden Fällen, mit oder ohne Shutdown Hook, verhält sich die Anwendung gleich einer Ausführung ohne Wrapper.

Sie finden eine detaillierte Übersicht und Anweisungen anhand eines Beispiels: JBoss EAP Windows oder Linux/UNIX.

Verweis: Starten Ihrer Anwendung mit dem Wrapper