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.
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
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`.
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 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.
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é.
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é.
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