[JAVA] Stellen Sie die Anwendung auf WildFly bereit

Einführung

Im vorherigen Artikel (https://qiita.com/tama1/items/829be5aacd81637ae73a) habe ich geschrieben, dass es drei Möglichkeiten gibt, eine Webanwendung für WildFly bereitzustellen:

** 1. In den Bereitstellungsordner (Verzeichnis) legen und bereitstellen ** ** 2. Bereitstellung über den Verwaltungsbildschirm ** ** 3. Bereitstellen mit der Verwaltungs-CLI **

Dieses Mal werde ich etwas detaillierter über diesen Bereich schreiben.

Bereitstellen im Bereitstellungsverzeichnis

Wenn Sie eine Anwendung (War-Datei) im Verzeichnis "Bereitstellungen" ablegen, wird die Anwendung von einem ** Bereitstellungsscanner ** bereitgestellt, der das Verzeichnis "Bereitstellungen" in regelmäßigen Abständen durchsucht. Es gibt zwei Arten von Anwendungen, die gescannt werden müssen: ** Archivformat ** und ** erweitertes Format **.

** 1. Archivformat ** Es ist eine WEB-Anwendung mit Reißverschluss. Sogenannte Kriegs- und Ohrfeilen. ** 2. Bereitstellungsformat ** Es ist eine WEB-Anwendung, die zip erweitert. Das extrahierte Verzeichnis heißt so etwas wie "xxx.war".

Die Einstellungen für den Bereitstellungsscanner finden Sie unten in "standalone.xml".

<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
    <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
</subsystem>

Die Einstellungselemente für den Bereitstellungsscanner können auf dem Verwaltungsbildschirm wie folgt festgelegt werden.

Artikelname Erläuterung Standardwert
Auto Deploy Exploded Gibt an, ob die Bereitstellung erneut durchgeführt werden soll, wenn die bereitgestellte WEB-Anwendung aktualisiert wird false
Auto Deploy Xml Gibt an, ob die XML-Datei erneut bereitgestellt werden soll true
Auto Deploy Zipped Gibt an, ob die archivierte WEB-Anwendung erneut bereitgestellt werden soll true
Deployment Timeout Ein Fehler tritt auf, wenn die Bereitstellung abgelaufen ist oder die Bereitstellung länger als 600 Sekunden dauert. 600
Path Name des Bereitstellungsverzeichnisses deployments
Relative To Systemeigenschaften{jboss.server.base.dir}Pfad, standardmäßig "Wildfly"-15.0.0.Final/Da es "Standalone" ist, ist es "Wildfly" zusammen mit der Einstellung "Path".-15.0.0.Final/standalone/Es wird zu "Bereitstellungen". jboss.server.base.dir
Runtime Failure Causes Rollback Muss eine bestimmte App alle Bereitstellungen zurücksetzen, wenn ein Laufzeitfehler auftritt? ${jboss.deployment.scanner.rollback.on.failure:false}
Scan Enabled Gibt an, ob das Scannen aktiviert werden soll true
Scan Interval Scanintervall 5000

Mit anderen Worten, im Standardzustand befindet es sich im folgenden Zustand.

  1. Die WEB-Anwendung im Archivformat wird bereitgestellt, wenn sie aktualisiert wird.
  2. Beim Aktualisieren der WEB-Anwendung im Bereitstellungsformat muss die Markierungsdatei "xxx.war.dodeploy" eingefügt werden.

Markierungsdatei

Markierungsdateien können vom Benutzer erstellt werden, um den Bereitstellungsscanner zu steuern, oder vom Bereitstellungsscanner, um den aktuellen Status anzuzeigen. Legen Sie es im selben Verzeichnis wie Ihre Anwendung (War-Datei) ab, "wildfly-15.0.0.Final / standalone / deployments". Wenn vom Benutzer erstellt, kann der Inhalt der Datei leer sein.

** Vom Benutzer erstellte Markierungsdatei **

Name Bedeutung
xxx.war.dodeploy xxx.Krieg einsetzen
xxx.war.skipdeploy xxx.Überspringen Sie den Einsatz des Krieges
xxx.war.undeploy xxx.Krieg aufheben * WarumHandbuchNicht geschrieben in

** Vom Bereitstellungsscanner erstellte Markierungsdatei **

Name Bedeutung
xxx.war.isdeploying xxx.Krieg wird eingesetzt
xxx.war.deployed xxx.Der Einsatz des Krieges ist abgeschlossen
xxx.war.failed xxx.Krieg konnte nicht eingesetzt werden
xxx.war.isundeploying xxx.Krieg ist arbeitslos
xxx.war.undeployed xxx.Die Entfaltung des Krieges ist abgeschlossen

Bereitstellung über den Verwaltungsbildschirm

Stellen Sie die Anwendung über den WildFly-Verwaltungsbildschirm bereit. Der Verwaltungsbildschirm ist aufwendig und scheint (hauptsächlich) hauptsächlich verwendet zu werden. Was passiert, wenn Sie über den Verwaltungsbildschirm bereitstellen?

Ich denke, Sie können es leicht tun, indem Sie den Anweisungen auf dem Bildschirm folgen.

  1. Wählen Sie "Upload Deployment" aus der Schaltfläche "(+)" oben links im Menü "Deployments".

  2. Ziehen Sie die Kriegsdatei per Drag & Drop in den gepunkteten Rahmen oder klicken Sie auf den Link "Datei auswählen oder hierher ziehen", um die Kriegsdatei auszuwählen und hochzuladen. Nachdem der Upload abgeschlossen ist, klicken Sie auf "Weiter", um fortzufahren.

  3. Überprüfen Sie den Namen und den Laufzeitnamen und setzen Sie die Schaltfläche Aktiviert auf EIN, wenn Sie sie sofort aktivieren möchten. Runtime Name ist die Kontextwurzel. Drücken Sie nach der Bestätigung die Schaltfläche "Fertig stellen".

  4. Bereitstellung abgeschlossen

Werfen wir einen Blick auf das Verzeichnis "Bereitstellungen". Es gibt nichts. Wenn Sie standalone.xml öffnen, werden die folgenden Tags unten hinzugefügt.

    <deployments>
        <deployment name="helloworld.war" runtime-name="helloworld.war">
            <content sha1="2be2e53cd283a40f626a947aa35bfbfb593893ec"/>
        </deployment>
    </deployments>

Als ich im Verzeichnis wildfly-15.0.0.Final gesucht habe, habe ich eine solche Datei gefunden.

wildfly-15.0.0.Final/standalone/data/content/2b/e2e53cd283a40f626a947aa35bfbfb593893ec/content

Ich habe die Erweiterung in .zip geändert und sie mit dem Krieg verglichen, den ich zuvor hochgeladen habe, und sie stimmte überein. Es wurde an einem solchen Ort hochgeladen.

Entfernen Sie die Anwendung vom Administrationsbildschirm, bevor Sie fortfahren.

Das wildfly-15.0.0.Final / standalone / data / content / 2b / e2e53cd283a40f626a947aa35bfbfb593893ec / content ist weg und das zu standalone.xml hinzugefügte Tag ist weg.

Bereitstellung mit der Verwaltungs-CLI

wildfly-15.0.0.Final/bin/の下にある管理CLIであるjboss-cli.shを使用してアプリケーションをデプロイします。Windowsの場合はjboss-cli.batを使います。

Stellen Sie mit jboss-cli.sh --connect eine Verbindung zu WildFly her und führen Sie den Befehl deploy [Kriegsort mit vollem Pfad schreiben] aus.

#wildfly-15.0.0.Final/bin/jboss-cli.sh --connect
[standalone@localhost:9990 /] deploy /yourpath/helloworld.war

Die Bereitstellung ist jetzt abgeschlossen.

Wenn Sie standalone.xml öffnen, werden die folgenden Tags unten hinzugefügt.

<deployments>
    <deployment name="helloworld.war" runtime-name="helloworld.war">
        <content sha1="2be2e53cd283a40f626a947aa35bfbfb593893ec"/>
    </deployment>
</deployments>

Eine "Inhalts" -Datei wird ebenfalls erstellt.

wildfly-15.0.0.Final/standalone/data/content/2b/e2e53cd283a40f626a947aa35bfbfb593893ec/content

Es scheint sich genauso zu verhalten wie bei der Bereitstellung über den Verwaltungsbildschirm. Daher denke ich, dass Sie verwenden sollten, was Sie möchten.

Wie lässt sich das am besten bereitstellen?

In der Dokumentation wird angegeben, dass das Produktsystem die Verwaltungs-API anstelle des Bereitstellungsscanners verwenden sollte.

Die Idee scheint zu sein, dass die Bereitstellung mit einem Bereitstellungsscanner während der Entwicklung verwendet und der Verwaltungsbildschirm oder die Verwaltungs-CLI nach der Produktionsversion verwendet werden soll.

8.2.2. Deploying Using the Deployment Scanner

Users are encouraged to use the WildFly management APIs to upload and deploy deployment content instead of relying on the deployment scanner that periodically scans the directory, particularly if running production systems.

Recommended Posts

Stellen Sie die Anwendung auf WildFly bereit
Stellen Sie die SpringBoot-Anwendung in AWS EC2 bereit
Stellen Sie Ihre Anwendung mithilfe des Cloud Toolkit Maven-Plugins für EDAS bereit
Stellen Sie die Anwendung mit VPC + EC2 + Docker bereit.
Schritte zur Bereitstellung in Heroku
Schritte zum Bereitstellen von Struts 2.5.8
Automatische Bereitstellung in WildFly mit Jenkins, wenn SVN festschreibt
Anleitung: Stellen Sie Ihre Anwendung mit dem Alibaba Cloud Toolkit-Plugin bereit
Einführung in die Android App-Entwicklung
Wie man mit Heroku einsetzt
[Java] Stellen Sie die Spring Boot-Anwendung für den Azure App Service bereit
Stellen Sie die von Spring Boot erstellte Anwendung für Heroku (öffentlich) bereit ②
So stellen Sie jQuery in Rails-Apps mit Webpacker bereit
Stellen Sie die von Spring Boot erstellte Anwendung für Heroku (öffentlich) bereit ①
Umschreiben von Applet zu Anwendung
So stellen Sie eine Java-Anwendung in Alibaba Cloud EDAS in Eclipse bereit
Java: Starten Sie WAS mit Docker und stellen Sie Ihre eigene Anwendung bereit
So stellen Sie die Rails-Anwendung in AWS bereit (Artikelzusammenfassung)
Versuchen Sie, OpenCV in die Android-Anwendung einzuführen
So stellen Sie Laravel für CentOS 7 bereit
Vorbereiten der Erstellung einer Rails-Anwendung
Einführung des vollständigen Kalenders in die Rails-Anwendung
So stellen Sie Bootstrap auf Rails bereit
Verknüpfungen zur Optimierung der Eclipse-Arbeit
So installieren Sie WildFly unter Ubuntu 18.04
Stellen Sie Rails on Docker für Heroku bereit
Einfache Möglichkeit, ein eigenes Anwendungslogo zu erstellen (einfach mit Ihrem Smartphone)
WAR die WEB-Anwendung per Spring Boot und stellen Sie sie auf dem Tomcat-Server bereit
Bereitstellen einer Node.js-Anwendung auf einer ECS-Instanz mithilfe des Cloud Toolkit