Zum Hauptinhalt springen

Bereitstellen 26.03

In ChatGPT öffnen

Das webforJ-Maven-Plugin stellt eine App mit drei Zielen auf BBjShip bereit:

ZielWird ausgeführtFunktion
bbj-packagein der Phase packageSchreibt das Bereitstellungsarchiv target/bbj/<publish name>.zip
bbj-deployin der Phase installSchreibt das Archiv und stellt es auf BBjShip bereit
bbj-undeploymanuellEntfernt die App aus BBjServices

Die Phasen gelten, wenn das Plugin mit <extensions>true</extensions> und einem <bbj>-Block deklariert ist. Siehe Ein Projekt konfigurieren.

Bereitstellen​

mvn install

Ohne die Extension führen Sie mvn package webforj:bbj-deploy aus. Nach Abschluss der Bereitstellung gibt das Ziel die Adresse der App aus:

[INFO] BBj deployment of inventory completed at http://localhost:8888/webapp/inventory

Wenn eine Bereitstellung fehlschlägt, wird die vorherige Version weiterhin ausgeführt.

Ersetzt die App

Eine Bereitstellung ersetzt die App mit demselben Veröffentlichungsnamen. Der vorherige Bereitstellungsordner wird entfernt und die laufenden Sitzungen dieser App werden beendet. Bewahren Sie das Archiv der vorherigen Version auf, falls Sie zurückwechseln müssen.

Fehlerbehebung enthält die Meldungen bei einer fehlgeschlagenen Bereitstellung und erklärt, was jeweils zu tun ist.

Paketieren ohne Bereitstellung​

bbj-package schreibt dasselbe Archiv, jedoch ohne Bereitstellungs-URL oder Zugangsdaten. Ein CI-Job kann target/bbj/<publish name>.zip an den Build anhängen. Anschließend stellt ein BBj-Administrator die App auf dem BBj-Rechner mit bbjship apps deploy bereit.

Bereitstellung aufheben​

mvn webforj:bbj-undeploy

Die App wird angehalten und zusammen mit ihren Dateien aus dem Enterprise Manager entfernt.

Kann nicht rückgängig gemacht werden

bbj-undeploy beendet die laufenden Sitzungen der App und löscht ihren Bereitstellungsordner. Dies kann nicht rückgängig gemacht werden. Bewahren Sie das Archiv unter target/bbj/<publish name>.zip auf, falls Sie die App erneut bereitstellen möchten.

Veröffentlichungsnamen​

Der Veröffentlichungsname entspricht standardmäßig dem endgültigen Namen des Builds und erscheint in der App-Adresse. Er beginnt mit einem Buchstaben oder einer Ziffer, enthält nur Buchstaben, Ziffern, _, . und - und endet nicht mit einem Punkt. Reservierte Namen wie die BBjServices-Pfade webapp und files oder der Windows-Gerätename con werden abgelehnt, bevor das Archiv geschrieben wird.

Jede Einstiegsklasse gehört zu genau einer bereitgestellten App. Wird sie unter einem zweiten Namen bereitgestellt, schlägt der Vorgang mit folgender Meldung fehl:

BBj deployment failed with HTTP 409. Entry class com.example.Application is already published as inventory. Undeploy inventory first

Von einem anderen Rechner aus bereitstellen​

Für eine Bereitstellung von einem anderen Rechner aus, beispielsweise einem CI-Server, wird ein Autorisierungstoken über HTTPS verwendet:

  1. Aktivieren Sie den Endpunkt auf dem BBj-Rechner mit einem SSL-Port.
  2. Erstellen Sie im Enterprise Manager unter „Security“ > „Authentication Tokens“ ein Token. Dort können Sie es auch erneuern und widerrufen.
  3. Übergeben Sie das Token an den Build:
mvn package webforj:bbj-deploy \
-Dwebforj.bbj.deployment.url=https://bbj.example.com:8443/webforj-bbjship \
-Dwebforj.bbj.admin.token="$BBJ_ADMIN_TOKEN"

Das Zertifikat des BBjServices-Webservers muss mit dem Hostnamen der URL übereinstimmen oder im Java-Truststore des Builds enthalten sein. Java vertraut dem selbst signierten Standardzertifikat von BBj nicht.

Eine http://-URL zu einem anderen Rechner wird auf beiden Seiten abgelehnt. Das Ziel wird beendet, bevor es etwas sendet, und BBjShip antwortet mit HTTP 403, wenn eine Anfrage über HTTP von einem anderen Rechner eingeht. Eine URL, die den BBj-Rechner selbst bezeichnet – localhost oder eine seiner eigenen Adressen –, funktioniert über HTTP.

Um trotzdem über HTTP auf einem anderen Rechner bereitzustellen, beispielsweise auf einer virtuellen Maschine auf dem eigenen Computer, müssen Sie dies auf beiden Seiten erlauben. Führen Sie auf dem BBj-Rechner bbjship remote enable --allow-unencrypted mit den Ports des Endpunkts aus. Setzen Sie im Build <deployment><allowUnencrypted>true</allowUnencrypted> oder übergeben Sie die Eigenschaft:

mvn package webforj:bbj-deploy \
-Dwebforj.bbj.deployment.url=http://bbj.example.com:8888/webforj-bbjship \
-Dwebforj.bbj.deployment.allowUnencrypted=true

Das Ziel gibt dann eine Warnung aus und führt die Bereitstellung durch. Die Zugangsdaten werden bei dieser Verbindung im Klartext über das Netzwerk übertragen.

App-Einstellungen​

BBjShip liest bei jeder Bereitstellung die webforj.conf der App und wendet die darin enthaltenen Eigenschaften auf die App im Enterprise Manager an. Bei einer erneuten Bereitstellung wird ein geänderter Wert übernommen. Für nicht gesetzte Eigenschaften gilt der Standardwert von BBjServices.

webforj.conf
webforj.assetsSource = packaged
webforj.disallowConsole = true
webforj.programArguments = ["mode=demo", "region eu"]
EigenschaftStandardwertBeschreibung
webforj.assetsSourceNicht gesetztMit packaged werden die statischen Dateien ws:// und die Symbole icons:// aus der App unter /webforj/<publish name>/ bereitgestellt. Ohne diese Einstellung kann eine App, die icons:// verwendet, nicht gestartet werden.
webforj.showClientConfirmationDialogfalseLegt fest, ob der Browser vor dem Schließen der Seite eine Bestätigung anfordert.
webforj.disallowConsoletrueLegt fest, ob die Konsole in der App deaktiviert ist.
webforj.secureBBjServices-StandardwertLegt fest, ob die App über eine sichere Verbindung ausgeführt wird.
webforj.configFileBBjServices-StandardwertPfad der BBj-Konfigurationsdatei, mit der die App ausgeführt wird, so wie BBjServices sie auf dem BBj-Rechner liest. Der Pfad wird unverändert übergeben und kann daher auf eine Datei verweisen, auf die nur der Server zugreifen kann.
webforj.programArgumentsKeineProgrammargumente der App, entweder als Liste von Zeichenfolgen oder als einzelne Zeichenfolge.

Eine ungültige webforj.conf führt dazu, dass die Bereitstellung mit HTTP 400 und einer Begründung fehlschlägt.

Einstellungen​

Die Einstellungen befinden sich im <bbj>-Block der Konfiguration von webforj-maven-plugin, wie unter Build-Plugin gezeigt. Jede Eigenschaft überschreibt das zugehörige Element in der Befehlszeile.

Maven-ElementMaven-EigenschaftStandardwertBeschreibung
<home>webforj.bbj.homeAutomatisch erkanntBBj-Installationsordner, der von bbj-setup und watch verwendet wird.
<publishName>webforj.bbj.publishNameEndgültiger Name des BuildsName, unter dem die App veröffentlicht wird; siehe Veröffentlichungsnamen.
<deployment><url>webforj.bbj.deployment.urlKeiner, erforderlichAdresse von BBjShip: http://<host>:<HTTP port>/webforj-bbjship oder https://<host>:<SSL port>/webforj-bbjship.
<deployment><allowUnencrypted>webforj.bbj.deployment.allowUnencryptedfalseErlaubt bbj-deploy und bbj-undeploy, Zugangsdaten über eine http://-URL an einen anderen Rechner zu senden; siehe Von einem anderen Rechner aus bereitstellen.
<admin><username>webforj.bbj.admin.usernameadmin, wenn Benutzername und Passwort beide fehlenBenutzername des BBj-Administrators.
<admin><password>webforj.bbj.admin.passwordadmin123, wenn Benutzername und Passwort beide fehlenPasswort des BBj-Administrators.
<admin><token>webforj.bbj.admin.tokenLeerAutorisierungstoken für bbj-deploy und bbj-undeploy. Hat Vorrang vor Benutzername und Passwort.
<properties>webforj.bbj.properties<home>/cfg/BBj.propertiesBBjServices-Eigenschaftendatei, in die ein Entwicklungslauf die Hotswap-Einstellungen schreibt.
<development><classFolder>—Build-AusgabeverzeichnisKlassenordner eines Entwicklungslaufs, so wie BBjServices ihn liest.
—webforj.bbj.forcefalseErlaubt bbj-setup, eine installierte BBjShip-Version durch eine andere Version zu ersetzen. Nur als Eigenschaft verfügbar.

Ein Benutzername ohne Passwort oder ein Passwort ohne Benutzernamen führt dazu, dass das Ziel beendet wird.

webforJ-Team

Brauchst du Hilfe?

Sprechen Sie mit den Entwicklern von webforJ über Ihr Projekt.

Gespräch vereinbaren

Wir sprechen EN · DE · FR · ES