One-JAR Java EE-Anwendung mit WebSphere Liberty

Dieser Artikel ist der 21. Tagesartikel von Java EE Adventskalender 2016. Gestern war emag @ githubs WildFly Swarm 3 Auswahl #javaee.

Die Verteilung von Java EE-Anwendungen erfolgt im Allgemeinen in EAR / WAR-Dateien, erfordert jedoch die Installation und Konfiguration eines Anwendungsservers, um ausgeführt zu werden. Es wäre nützlich, es als JAR-Datei verteilen zu können, die mit java -jar ausgeführt werden kann. Der Java EE-Anwendungsserver von IBM WebSphere Liberty bietet auch die Möglichkeit, ausführbare JAR-Dateien zu verpacken.

Laden Sie WebSphere Liberty herunter

WebSphere Liberty kann kostenlos heruntergeladen und für Entwicklungszwecke verwendet werden. Laden Sie die Laufzeit von der WASDev-Download-Site herunter (https://developer.ibm.com/wasdev/downloads/) (https://developer.ibm.com/wasdev/downloads/liberty-profile-using-non- Lass uns Eclipse-Umgebungen machen /). Java EE 7 Web Profile kompatibel, Full Platform kompatibel, Java SDK enthalten usw. sind verfügbar. Wählen Sie also das gewünschte aus und laden Sie es herunter. Sie müssen lediglich die heruntergeladene ZIP-Datei entpacken.

$ unzip wlp-webProfile7-16.0.0.4.zip

Konfiguration erstellen

Sie können eine Standardkonfigurationsdatei mit dem Befehl server im Verzeichnis wlp / bin erstellen. Hier erstellen wir den Nameserver1. Wenn Sie den Servernamen weglassen, wird ein Server mit dem Namen defaultServer erstellt.

$ cd wlp/bin
$ ./server create server1

Eine Konfigurationsdatei mit dem Namen server.xml wurde im Verzeichnis wlp / usr / servers / server1 erstellt. Die Standardkonfigurationsdatei variiert je nach Umgebung. Hier wird sie jedoch wie folgt umgeschrieben.

server.xml


<?xml version="1.0" encoding="UTF-8"?>
<server description="new server">

    <!-- Enable features -->
    <featureManager>
        <feature>jsp-2.3</feature>
    </featureManager>

    <httpEndpoint id="defaultHttpEndpoint"
                  httpPort="9080"
                  httpsPort="9443" />

</server>

In Liberty wird die bereitgestellte Funktionalität in einer separaten Komponente namens Feature implementiert. Nur die in der Konfigurationsdatei angegebenen Funktionen werden in den Speicher geladen und initialisiert. Die in der aktuellen Umgebung verfügbaren Funktionen werden mit dem Befehl productInfo featureInfo aufgelistet. Die fehlenden Funktionen können heruntergeladen und installiert werden, indem ein Befehl wie "Install Utility install adminCenter-1.0" ausgeführt wird.

Voll funktionsfähige Funktionen wie webProfile-7.0 und javaee-7.0 sind ebenfalls definiert. Wenn Sie jedoch nach Möglichkeit nur die Funktionen der Funktionen angeben, die Sie verwenden möchten, wird die Startzeit kürzer und die danach erstellte JAR-Datei wird ebenfalls kleiner.

Hier sind nur die Funktionen von JSP 2.3 (und das vorausgesetzte Servlet 3.1) aktiviert [^ 1]. [^ 1]: Wenn Sie das MicroProfile-Paket heruntergeladen und installiert haben, ist die JSP 2.3-Funktion nicht enthalten. In diesem Fall installieren Sie bitte zusätzliche Funktionen mit installUtility install jsp-2.3.

Eine Anwendung erstellen

Natürlich können Sie die separat entwickelte WAR- und EAR-Datei verwenden, aber hier erstellen wir die Anwendung direkt auf der Festplatte.

Erstellen Sie ein Verzeichnis mit dem Namen test.war in wlp / usr / servers / server1 / dropins. Dies allein wird von Liberty als Webanwendung anerkannt. Erstellen Sie eine Datei mit dem Namen index.jsp.

index.jsp


<html>
<head><title>Hello Liberty!</title></head>
<body>
<h1>Hello Liberty!</h1>
It is <%= new java.util.Date() %> now.
</body>
</html>

Eine praktischere Konfigurations- und Anwendungsinstallationsmethode für server.xml finden Sie unter [Liberty Profile] im Dokument hier. Entwicklung und Konfiguration durch](http://public.dhe.ibm.com/software/dw/jp/websphere/was/was855liberty_ws/WASV855_UPDATE_03.pdf) usw.

Führen Sie den Server aus

Führen Sie den Serverbefehl im Verzeichnis wlp / bin aus.

$ ./server run server1
Java HotSpot(TM) 64-Bit Server VM Version 1.8.0 (ja_JP)Also, Server1(WebSphere Application Server 16.0.0.4/wlp-1.0.14.cl160320160831-1555)Läuft
[AUDIT   ] CWWKE0001I:Server server1 wurde gestartet.
[AUDIT   ] CWWKZ0058I:Überwachen von Anwendungs-Dropins.
[AUDIT   ] CWWKT0016I:Webanwendung ist verfügbar(default_host): http://localhost:9080/test/
[AUDIT   ] CWWKZ0001I:Anwendungstest ist 0.Es begann in 231 Sekunden.
[AUDIT   ] CWWKF0012I:Der Server hat die folgenden Funktionen installiert:[jsp-2.3, servlet-3.1, el-3.0]。
[AUDIT   ] CWWKF0011I:Server server1 ist bereit für Smarter Planet.

Wenn Sie mit einem Browser auf http: // localhost: 9080 / test / zugreifen, wird die erstellte JSP ausgeführt. Sie können den Server mit Strg + C stoppen.

Serverpaket

Die auf diese Weise erstellte Liberty-Ausführungsumgebung + Serverkonfiguration + Anwendung kann in einer JAR-Datei zusammengefasst werden.

$ ./server package server1 --include=minify,runnable --archive=/tmp/server1.jar
Server Server1 wird gepackt.
Der Inhalt wird auf Server Server1 abgefragt.
Java HotSpot(TM) 64-Bit Server VM Version 1.8.0 (ja_JP)Also, Server1(WebSphere Application Server 16.0.0.4/wlp-1.0.14.cl160320160831-1555)
[AUDIT   ] CWWKE0001I:Server server1 wurde gestartet.
[AUDIT   ] CWWKF0026I:Server server1 ist bereit, ein kleineres Paket zu erstellen.
[AUDIT   ] CWWKE0036I: 1.Server Server1 wurde nach 439 Sekunden gestoppt.
Erstellen eines Archivs für Server Server1.
Das Paket von Server Server1/tmp/server1.

Werfen wir einen Blick auf die fertige JAR-Datei.

$ ls -l /tmp/server1.jar 
-rw-r-----  1 takakiyo  wheel  27055142 12 21 17:16 /tmp/server1.jar

Die Größe beträgt 27 MB. Lass uns das machen.

$ java -jar /tmp/server1.jar 
Datei/Users/takakiyo/wlpExtract/server1_15934526082127/Extrahiert zu wlp.
Alle Produktdateien wurden erfolgreich extrahiert.
Java HotSpot(TM) 64-Bit Server VM Version 1.8.0 (ja_JP)Also, Server1(WebSphere Application Server 16.0.0.4/wlp-1.0.14.cl160320160831-1555)Läuft
[AUDIT   ] CWWKE0001I:Server server1 wurde gestartet.
[AUDIT   ] CWWKZ0058I:Überwachen von Anwendungs-Dropins.
[AUDIT   ] CWWKT0016I:Webanwendung ist verfügbar(default_host): http://localhost:9080/test/
[AUDIT   ] CWWKZ0001I:Anwendungstest ist 0.Es begann in 163 Sekunden.
[AUDIT   ] CWWKF0012I:Der Server hat die folgenden Funktionen installiert:[jsp-2.3, servlet-3.1, el-3.0]。
[AUDIT   ] CWWKF0011I:Server server1 ist bereit für Smarter Planet.

Irgendwie wird es zu einem temporären Verzeichnis erweitert, aber dank dessen funktioniert ClassLoader # getResourceAsStream () usw. auch ohne Probleme. Der Inhalt des temporären Verzeichnisses wird automatisch gelöscht, wenn der Server gestoppt wird.

Verweis auf Umgebungsvariablen

Es wäre praktisch, in der Lage zu sein, entsprechend der Umgebung zu arbeiten, ohne das erstellte Paket zu ändern. Hier zeigen wir Ihnen, wie Sie auf Umgebungsvariablen in der Konfigurationsdatei verweisen.

Ändern Sie die LISTEN-Portnummer in server.xml wie folgt in "$ {env. Name der Umgebungsvariablen}".

    <httpEndpoint id="defaultHttpEndpoint"
                  httpPort="${env.WLP_HTTP_PORT}"
                  httpsPort="9443" />

Lassen Sie uns das Paket neu erstellen und wie folgt ausführen.

$ export WLP_HTTP_PORT=8880; java -jar /tmp/server1.jar

Wenn Sie mit einem Browser darauf zugreifen, sehen Sie, dass sich die Portnummer geändert hat.

Zusammenfassung

WebSphere Liberty ermöglicht das Verteilen von Java EE-Anwendungen als One JAR-Dateien, wodurch das Verteilen von Webanwendungen vereinfacht wird.

Recommended Posts

One-JAR Java EE-Anwendung mit WebSphere Liberty
Java (WebSphere Application Server) Hinweis [1]
Aktivieren Sie Java EE mit NetBeans 9
Ich habe versucht, eine Java EE-Anwendung mit OpenShift zu modernisieren.
[Java EE] Implementieren Sie den Client mit WebSocket
Führen Sie in Java8 geschriebene Anwendungen in Java6 aus
Java EE Test (CDI / Interceptor) mit Arquillian
[Jakarta EE 8 Anwendungsentwicklung mit Gradle] 1. Umgebungskonstruktion
Java 9+ Anwendungsstatus
Erstellen Sie eine E2E-Testumgebung mit Selenium (Java).
[Jakarta EE 8 Anwendungsentwicklung mit Gradle] 2. Projekterstellung
Verwenden von Java 8 mit Bluemix (auf Liberty Runtime & DevOps Service)
Verfolgen Sie die mit dem Java-Agenten Insights der Anwendung ausgeführte SQL
[Tutorial] Eclipse herunterladen → Anwendung mit Java ausführen (Plejaden)
Erfahrene Java-Benutzer beginnen mit der Entwicklung von Android-Apps
[Tutorial] Eclipse herunterladen → Webanwendung mit Java ausführen (Plejaden)
Serverloses Java EE beginnend mit Quarkus und Cloud Run
Installieren Sie Java mit Homebrew
Wechseln Sie die Plätze mit Java
Installieren Sie Java mit Ansible
Bequemer Download mit JAVA
Schalten Sie Java mit direnv
Java-Download mit Ansible
Lass uns mit Java kratzen! !!
Erstellen Sie Java mit Wercker
Endian-Konvertierung mit JAVA
Die Geschichte der Erstellung einer Task-Management-Anwendung mit Swing, Java
Erstellung einer Java-Webanwendungsentwicklungsumgebung mit VS-Code (struts2)
Java: Starten Sie WAS mit Docker und stellen Sie Ihre eigene Anwendung bereit