WildFly Bootable JAR – JEE-Server im Projekt integrieren

Application Server werden häufig als schwergewichtig characterisiert, was aber nicht an ihrer Größe liegt, sondern daran, dass man zum Betrieb einer Enterprise-Applikation zunächst einen Server installieren und konfigurieren muss, bevor die Anwendung darauf deployt werden kann.

Man kann die Vorbereitung allerdings auch im Anwendungsprojekt erledigen und automatisieren, sodass der zusätzliche Aufwand im Betrieb entfällt. Das geht bspw. mit einem Maven-Plugin für WildFly:

      <plugin>
        <groupId>org.wildfly.plugins</groupId>
        <artifactId>wildfly-jar-maven-plugin</artifactId>
        <version>10.0.0.Final</version>
        <configuration>
          <feature-packs>
            <feature-pack>
              <location>wildfly@maven(org.jboss.universe:community-universe)#27.0.1.Final</location>
            </feature-pack>
          </feature-packs>
          <layers>
            <layer>jaxrs</layer>
            <layer>cdi</layer>
          </layers>
          <output-file-name>wildfly-bootable.jar</output-file-name>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

Ein mvn package erzeugt nun zusätzlich zum normalen Ergebnis des Builds – i. A. ein war-File – die Datei wildfly-bootable.jar, die den Server inklusive der Anwendung enthält. Sie kann mit java -jar wildfly-bootable.jar gestartet werden.

Wie oben zu sehen ist, wird der Server aus sog. Layers zusammengesetzt. Somit kann man also einen Server genau auf die Anwendung zuschneiden und die Teile weglassen, die nicht benötigt werden.

Weitere Möglichkeiten sind u.a.:

  • Erstellung eines sog. Hollow JARs. Es enthält nur den provisionierten Server. Die Anwendung wird dann beim Start mittels Kommandozeilenparameter bestimmt.
  • Ausführen von Konfigurations-Skripten (jboss-cli), z. B. um bestimmte Datasources einzurichten oder Logging-Einstellungen vorzunehmen.
  • Starten von Anwendung und Server im Development-Modus mit Hot Reloading von Code-Änderungen.

Weitere Details s. https://docs.wildfly.org/27/Bootable_Guide.html.

Wir nutzen das Plugin und insb. den Development Mode seit einiger Zeit in unseren Seminaren. Die Erfahrungen sind sehr gut. Angenehm ist, dass die Projekte ihre Serverkonfiguration mitbringen und für die Weiterentwicklung der Anwendungen keine besondere Integration in die IDE vonnöten ist.

Über Dirk Weil
Dirk Weil ist seit 1998 als Berater im Bereich Java tätig. Als Geschäftsführer der GEDOPLAN GmbH in Bielefeld ist er für die Konzeption und Realisierung von Informationssystemen auf Basis von Java EE verantwortlich. Seine langjährige Erfahrung in der Entwicklung anspruchsvoller Unternehmenslösungen machen ihn zu einem kompetenten Ansprechpartner und anerkannten Experten auf dem Gebiet Java EE. Er ist Autor in Fachmagazinen, hält Vorträge und leitet Seminare und Workshops aus einem eigenen Java-Curriculum.

Hinterlasse einen Kommentar