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.
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
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
.
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 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.
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.
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.
WebSphere Liberty ermöglicht das Verteilen von Java EE-Anwendungen als One JAR-Dateien, wodurch das Verteilen von Webanwendungen vereinfacht wird.
Recommended Posts