Tout en examinant l'état actuel de MicroProfile en vue de la dernière étape J'ai vu une note de publication indiquant que Wildfly prend en charge Bootable Jar. Si c'est Redhat, est-ce Wildfly ainsi que Quarkus ou Thorntail? ?? Quand J'ai été choqué, alors j'ai fait un article
Pour ceux qui ont développé en Java. Quelqu'un qui gère Maven devrait le savoir avant de lire.
La note de publication de Wildfly 21 stipule:
Bootable JAR / Galleon Layers
The biggest thing in WildFly 21 is Jean-Francois Denise and the team have added GA-level > support for the Bootable JAR feature that we’ve been working on over the last two releases.
· Document original https://www.wildfly.org/news/2020/10/13/WildFly21-Final-Released/
Merveilleux.
Je ne pense pas que quiconque ait seulement fait SpringBoot en ait fait l'expérience, mais avant l'avènement de SpringBoot, en (1) démarrant un middleware appelé serveur d'applications puis (2) déployant des fichiers d'archives d'applications (war, ear, etc.), le Web Je lançais une application.
Le serveur d'application ici était Wildfly.
Récemment, au lieu de lancer le serveur d'application à l'avance, il est devenu possible d'envelopper la bibliothèque requise par le serveur d'application dans un fichier d'archivage d'application (jar) et de le lancer soudainement. C'est facile.
Au fait, Wildfly le lit officiellement comme Bootable Jar, mais je pense qu'il est souvent appelé Uber Jar dans le monde. On dit qu'Uber vient du mot allemand pour «engagement / simultanéité». (J'ai aussi appris cela pour la première fois après avoir vérifié cette fois)
Je pensais faire un tutoriel depuis la page officielle de Wildfly, mais j'aime ça. Wildfly peut être sélectionné comme démarreur de MicroProfile, je vais donc commencer à partir de là.
https://start.microprofile.io/ Accédez à et sélectionnez MP3.3 (ce qui signifie utiliser MicroProfile version 3.3) et WildFly apparaîtra dans MicroProfile Runtime, alors sélectionnez-le et téléchargez-le.
Après avoir décompressé le fichier Zip, le contenu est le suivant.
Selon Readme.md
mvn package
Et pour le fichier jar terminé
java -jar target/demo-jboss-wildfly.jar
Appuyez sur la ligne de commande pour lancer l'application. C'est trop facile.
La première fois, c'était lent car diverses bibliothèques ont été téléchargées, mais il n'a fallu que quelques secondes pour lancer l'application.
C'est aussi rapide que Spring Boot.
```Journal d'exécution
\$ java -jar target/demo-jboss-bootable.jar
20:38:48,068 INFO [org.wildfly.jar](main) WFLYJAR0007: Installed server and application in /var/folders/1m/v_pnk3kd3hj0558d1z3nsnzh0000gn/T/wildfly-bootable-server4287071073176360181, took 1736ms
20:38:48,524 INFO [org.wildfly.jar](main) WFLYJAR0008: Server options: [--read-only-server-config=standalone.xml]
20:38:48,632 INFO [org.jboss.msc](main) JBoss MSC version 1.4.12.Final
20:38:48,641 INFO [org.jboss.threads](main) JBoss Threads version 2.4.0.Final
20:38:48,801 INFO [org.jboss.as](MSC service thread 1-3) WFLYSRV0049: WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) starting
20:38:49,685 INFO [org.wildfly.extension.microprofile.config.smallrye._private](ServerService Thread Pool -- 17) WFLYCONF0001: Activating WildFly MicroProfile Config Subsystem
20:38:49,690 INFO [org.jboss.as.naming](ServerService Thread Pool -- 19) WFLYNAM0001: Activating Naming Subsystem
20:38:49,695 INFO [org.wildfly.extension.microprofile.openapi.smallrye](ServerService Thread Pool -- 18) WFLYMPOAI0001: Activating Eclipse MicroProfile OpenAPI Subsystem
20:38:49,715 INFO [org.jboss.as.jaxrs](ServerService Thread Pool -- 16) WFLYRS0016: RESTEasy version 3.13.2.Final
20:38:49,722 INFO [org.xnio](ServerService Thread Pool -- 15) XNIO version 3.8.2.Final
20:38:49,741 INFO [org.wildfly.extension.undertow](MSC service thread 1-7) WFLYUT0003: Undertow 2.2.2.Final starting
20:38:49,743 INFO [org.jboss.as.naming](MSC service thread 1-2) WFLYNAM0003: Starting Naming Service
20:38:49,773 INFO [org.xnio.nio](ServerService Thread Pool -- 15) XNIO NIO Implementation Version 3.8.2.Final
20:38:49,818 INFO [org.wildfly.extension.io](ServerService Thread Pool -- 15) WFLYIO001: Worker 'default' has auto-configured to 8 IO threads with 64 max task threads based on your 4 available processors
20:38:49,865 INFO [org.wildfly.extension.undertow](MSC service thread 1-6) WFLYUT0012: Started server default-server.
20:38:49,868 INFO [org.wildfly.extension.undertow](MSC service thread 1-8) WFLYUT0018: Host default-host starting
20:38:49,902 INFO [org.jboss.as.server.deployment.scanner](MSC service thread 1-3) WFLYDS0013: Started FileSystemDeploymentService for directory /var/folders/1m/v_pnk3kd3hj0558d1z3nsnzh0000gn/T/wildfly-bootable-server4287071073176360181/standalone/deployments
20:38:49,913 INFO [org.jboss.as.server.deployment](MSC service thread 1-8) WFLYSRV0027: Starting deployment of "demo-jboss.war" (runtime-name: "ROOT.war")
20:38:49,996 INFO [org.wildfly.extension.undertow](MSC service thread 1-5) WFLYUT0006: Undertow HTTP listener default listening on 127.0.0.1:8080
20:38:50,552 INFO [org.jboss.weld.deployer](MSC service thread 1-8) WFLYWELD0003: Processing weld deployment ROOT.war
20:38:50,959 INFO [org.hibernate.validator.internal.util.Version](MSC service thread 1-8) HV000001: Hibernate Validator 6.0.21.Final
20:38:51,321 INFO [org.jboss.weld.Version](MSC service thread 1-1) WELD-000900: 3.1.5 (Final)
20:38:51,488 INFO [org.jboss.weld.Bootstrap](MSC service thread 1-3) WELD-000101: Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously.
20:38:52,237 INFO [org.wildfly.extension.microprofile.openapi.smallrye](MSC service thread 1-8) WFLYMPOAI0004: Registered MicroProfile OpenAPI endpoint '/openapi' for host 'default-host'
20:38:52,600 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n](ServerService Thread Pool -- 22) RESTEASY002225: Deploying javax.ws.rs.core.Application: class com.example.demo.jboss.DemojbossRestApplication$Proxy$_$$_WeldClientProxy
20:38:52,639 INFO [org.wildfly.extension.undertow](ServerService Thread Pool -- 22) WFLYUT0021: Registered web context: '/' for server 'default-server'
20:38:52,641 INFO [org.jboss.as.server](Controller Boot Thread) WFLYSRV0010: Deployed "demo-jboss.war" (runtime-name : "ROOT.war")
20:38:52,669 INFO [org.jboss.as.server](Controller Boot Thread) WFLYSRV0212: Resuming server
20:38:52,671 INFO [org.jboss.as](Controller Boot Thread) WFLYSRV0025: WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) started in 4140ms - Started 139 of 144 services (22 services are lazy, passive or on-demand)
→ 4140msec !!!
La page supérieure de l'exemple d'application MicroProfile a été affichée avec succès.
En fait, ce que j'ai laissé tomber avec le Starter de MicroProfile n'était pas le Wildfly 21 que j'avais présenté au début. En regardant pom.xml
...
<version.wildfly>19.1.0.Final</version.wildfly>
...
C'était la version 19.1, donc cela signifie qu'elle était prise en charge à partir de cette version. Depuis qu'une nouvelle version est sortie, je l'ai changée en 21 cette fois et l'ai déplacée.
...
<version.wildfly>21.0.0.Final</version.wildfly>
...
Aussi, je pensais que je devais changer le plug-in qui fait Jar, mais je ne sais pas comment le configurer, donc je l'exécute sans spécifier la version pour le moment.
...
<build>
<plugins>
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-jar-maven-plugin</artifactId>
<!--Je ne sais pas quelle est la dernière version, donc je la supprime et l'exécute avec la dernière version-->
<!--version>1.0.0.Alpha4</version-->
<executions>
...
Je pensais que la reconnaissance que l'exécutable Jar pouvait être réalisé avec Wildfly était faible, alors j'ai fait un article. Il peut être difficile de modifier immédiatement l'environnement du produit en termes de fonctionnement, mais en passant de l'environnement de développement local Je voudrais prendre différentes mesures, comme l'utiliser à partir du développement d'un prototype.
Le code source utilisé est publié sur Github. C'est pour votre référence. https://github.com/omix222/wildfly21demo
Cet article résume les grandes lignes de Micro Profile dans le passé. https://qiita.com/omix222/items/50804e30e43085ceb912
Recommended Posts