Application Java EE One-JAR avec WebSphere Liberty

Cet article est l'article du 21e jour du Calendrier de l'avent Java EE 2016. Hier, c'était [WildFly Swarm 3 sélections #javaee] d'emag @ github (http://qiita.com/emag@github/items/112c8030dce31eef3d7b).

La distribution des applications Java EE se fait généralement dans des fichiers EAR / WAR, mais elle nécessite l'installation et la configuration d'un serveur d'applications pour s'exécuter. Il serait utile de pouvoir le distribuer sous forme de fichier JAR exécutable avec java -jar. Le serveur d'applications Java EE d'IBM WebSphere Liberty offre également la possibilité de regrouper des fichiers JAR exécutables.

Télécharger WebSphere Liberty

WebSphere Liberty peut être téléchargé et utilisé gratuitement à des fins de développement. Télécharger le runtime à partir du site de téléchargement WASDev (https://developer.ibm.com/wasdev/downloads/) (https://developer.ibm.com/wasdev/downloads/liberty-profile-using-non- Faisons eclipse-environnements /). Java EE 7 Web Profile compatible, Full Platform compatible, Java SDK inclus, etc. sont disponibles, alors sélectionnez celui dont vous avez besoin et téléchargez-le. Tout ce que vous avez à faire est de décompresser le fichier ZIP téléchargé.

$ unzip wlp-webProfile7-16.0.0.4.zip

Créer une configuration

Vous pouvez créer un fichier de configuration par défaut à l'aide de la commande server sous le répertoire wlp / bin. Ici, nous créons le nom server1. Si vous omettez le nom du serveur, un serveur nommé defaultServer sera créé.

$ cd wlp/bin
$ ./server create server1

Un fichier de configuration appelé server.xml a été créé dans le répertoire wlp / usr / servers / server1. Le fichier de configuration par défaut varie en fonction de l'environnement, mais ici il est réécrit comme suit.

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>

Dans Liberty, la fonctionnalité fournie est implémentée dans un composant distinct appelé fonctionnalité. Seules les fonctionnalités spécifiées dans le fichier de configuration seront chargées en mémoire et initialisées. Les fonctionnalités disponibles dans l'environnement actuel sont répertoriées avec la commande productInfo featureInfo. Les fonctionnalités manquantes peuvent être téléchargées et installées en exécutant une commande telle que ʻinstall Utility install adminCenter-1.0`.

Des fonctionnalités complètes telles que webProfile-7.0 et javaee-7.0 sont également définies, mais si possible, si vous ne spécifiez que les fonctionnalités des fonctions que vous souhaitez utiliser, le temps de démarrage sera plus court et le fichier JAR créé par la suite sera également plus petit.

Ici, seules les fonctions de JSP 2.3 (et son prérequis Servlet 3.1) sont activées [^ 1]. [^ 1]: si vous avez téléchargé et installé le package MicroProfile, la fonction JSP 2.3 n'est pas incluse. Dans ce cas, veuillez installer des fonctionnalités supplémentaires avec ʻinstall Utility install jsp-2.3`.

Créer une application

Bien sûr, vous pouvez utiliser le fichier WAR et le fichier EAR développés séparément, mais ici créons l'application directement sur le disque.

Créez un répertoire appelé test.war dans wlp / usr / servers / server1 / dropsins. Cela seul sera reconnu par Liberty comme une application Web. Créez-y un fichier appelé 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>

Pour une configuration plus pratique de server.xml et une méthode d'installation d'application, voir [Liberty Profile] dans le document here. Développement et configuration par](http://public.dhe.ibm.com/software/dw/jp/websphere/was/was855liberty_ws/WASV855_UPDATE_03.pdf) etc.

Exécutez le serveur

Exécutez la commande serveur sous le répertoire wlp / bin.

$ ./server run server1
Java HotSpot(TM) 64-Bit Server VM version 1.8.0 (ja_JP)Donc, serveur1(WebSphere Application Server 16.0.0.4/wlp-1.0.14.cl160320160831-1555)Est en cours d'exécution
[AUDIT   ] CWWKE0001I:Le serveur server1 a démarré.
[AUDIT   ] CWWKZ0058I:Surveillance des dropins des applications.
[AUDIT   ] CWWKT0016I:L'application Web est disponible(default_host): http://localhost:9080/test/
[AUDIT   ] CWWKZ0001I:Le test d'application est 0.Cela a commencé en 231 secondes.
[AUDIT   ] CWWKF0012I:Le serveur a installé les fonctionnalités suivantes:[jsp-2.3, servlet-3.1, el-3.0]。
[AUDIT   ] CWWKF0011I:Le serveur server1 est prêt pour Smarter Planet.

Si vous accédez à http: // localhost: 9080 / test / avec un navigateur, le JSP créé sera exécuté. Vous pouvez arrêter le serveur avec Ctrl + C.

Package serveur

L'environnement d'exécution Liberty + la configuration du serveur + l'application ainsi créés peuvent être regroupés dans un fichier JAR.

$ ./server package server1 --include=minify,runnable --archive=/tmp/server1.jar
Le serveur server1 est en cours de package.
Le contenu est interrogé sur le serveur server1.
Java HotSpot(TM) 64-Bit Server VM version 1.8.0 (ja_JP)Donc, serveur1(WebSphere Application Server 16.0.0.4/wlp-1.0.14.cl160320160831-1555)Est en cours d'exécution
[AUDIT   ] CWWKE0001I:Le serveur server1 a démarré.
[AUDIT   ] CWWKF0026I:Le serveur server1 est prêt à créer un package plus petit.
[AUDIT   ] CWWKE0036I: 1.Le serveur server1 s'est arrêté après 439 secondes.
Création d'une archive pour le serveur server1.
Le package du serveur server1/tmp/server1.Complété avec pot.

Jetons un œil au fichier JAR terminé.

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

La taille est de 27 Mo. Faisons cela.

$ java -jar /tmp/server1.jar 
fichier/Users/takakiyo/wlpExtract/server1_15934526082127/Extrait dans wlp.
Tous les fichiers produits ont été extraits avec succès.
Java HotSpot(TM) 64-Bit Server VM version 1.8.0 (ja_JP)Donc, serveur1(WebSphere Application Server 16.0.0.4/wlp-1.0.14.cl160320160831-1555)Est en cours d'exécution
[AUDIT   ] CWWKE0001I:Le serveur server1 a démarré.
[AUDIT   ] CWWKZ0058I:Surveillance des dropins des applications.
[AUDIT   ] CWWKT0016I:L'application Web est disponible(default_host): http://localhost:9080/test/
[AUDIT   ] CWWKZ0001I:Le test d'application est 0.Cela a commencé en 163 secondes.
[AUDIT   ] CWWKF0012I:Le serveur a installé les fonctionnalités suivantes:[jsp-2.3, servlet-3.1, el-3.0]。
[AUDIT   ] CWWKF0011I:Le serveur server1 est prêt pour Smarter Planet.

D'une manière ou d'une autre, il est étendu à un répertoire temporaire, mais grâce à cela, ClassLoader # getResourceAsStream () etc. fonctionne également sans problème. Le contenu du répertoire temporaire est automatiquement supprimé lorsque le serveur est arrêté.

Référence aux variables d'environnement

Il serait pratique de pouvoir opérer en fonction de l'environnement sans modifier le package créé. Ici, nous allons vous montrer comment faire référence aux variables d'environnement dans le fichier de configuration.

Modifiez le numéro de port LISTEN dans server.xml en $ {env. Nom de la variable d'environnement} comme suit.

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

Recréons le package et exécutons-le comme suit.

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

Si vous y accédez avec un navigateur, vous verrez que le numéro de port a changé.

Résumé

WebSphere Liberty permet de distribuer les applications Java EE sous forme de fichiers One JAR, ce qui facilite la distribution des applications Web.

Recommended Posts

Application Java EE One-JAR avec WebSphere Liberty
Remarque sur Java (WebSphere Application Server) [1]
Activer Java EE avec NetBeans 9
J'ai essayé de moderniser une application Java EE avec OpenShift.
[Java EE] Implémenter le client avec WebSocket
Exécuter des applications écrites en Java8 en Java6
Test Java EE (CDI / intercepteur) avec Arquillian
[Développement d'applications Jakarta EE 8 avec Gradle] 1. Construction de l'environnement
État de l'application Java 9+
Créer un environnement de test E2E avec Selenium (Java)
[Développement d'applications Jakarta EE 8 avec Gradle] 2. Création de projet
Utilisation de Java 8 avec Bluemix (sur Liberty Runtime & DevOps Service)
Tracez le SQL exécuté avec l'agent java Application Insights
[Tutoriel] Télécharger Eclipse → Lancer l'application avec Java (Pléiades)
Les utilisateurs Java expérimentés se lancent dans le développement d'applications Android
[Tutoriel] Télécharger Eclipse → Lancer l'application Web avec Java (Pléiades)
Java EE sans serveur à partir de Quarkus et Cloud Run
Installez java avec Homebrew
Changer de siège avec Java
Installez Java avec Ansible
Téléchargement confortable avec JAVA
Changer java avec direnv
Téléchargement Java avec Ansible
Raclons avec Java! !!
Construire Java avec Wercker
Conversion Endian avec JAVA
Histoire de créer une application de gestion de tâches avec Swing, Java
Construction d'environnement de développement d'applications Web Java avec VS Code (struts2)
Java: démarrez WAS avec Docker et déployez votre propre application