Passer au contenu principal

Déploiement 26.03

Ouvrir dans ChatGPT

Le plugin Maven webforJ déploie une application sur BBjShip à l’aide de trois objectifs :

ObjectifS’exécuteFonction
bbj-packageavec la phase packageÉcrit l’archive de déploiement target/bbj/<publish name>.zip
bbj-deployavec la phase installÉcrit l’archive et la déploie sur BBjShip
bbj-undeploymanuellementSupprime l’application de BBjServices

Ces phases s’appliquent lorsque le plugin est déclaré avec <extensions>true</extensions> et un bloc <bbj>. Voir Configuration d’un projet.

Déployer​

mvn install

Sans l’extension, exécutez mvn package webforj:bbj-deploy. À la fin du déploiement, l’objectif affiche l’adresse de l’application :

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

En cas d’échec du déploiement, la version précédente continue de fonctionner.

Remplace l’application

Un déploiement remplace l’application portant déjà le même nom de publication. Le dossier du déploiement précédent est supprimé et les sessions actives de cette application prennent fin. Conservez l’archive de la version précédente si vous risquez de devoir revenir en arrière.

La section Résolution des problèmes répertorie les messages associés à un déploiement échoué et indique la marche à suivre pour chacun.

Empaqueter sans déployer​

bbj-package écrit la même archive, sans URL de déploiement ni identifiants. Une tâche CI peut joindre target/bbj/<publish name>.zip à la compilation, puis un administrateur BBj la déploie sur la machine BBj à l’aide de bbjship apps deploy.

Annuler le déploiement​

mvn webforj:bbj-undeploy

L’application s’arrête et est supprimée d’Enterprise Manager, ainsi que ses fichiers.

Opération irréversible

bbj-undeploy met fin aux sessions actives de l’application et supprime son dossier de déploiement. Cette opération est irréversible. Conservez l’archive target/bbj/<publish name>.zip si vous risquez de vouloir redéployer l’application.

Noms de publication​

Par défaut, le nom de publication correspond au nom final de la compilation et figure dans l’adresse de l’application. Il commence par une lettre ou un chiffre, contient uniquement des lettres, des chiffres, _, . et -, et ne se termine pas par un point. Les noms réservés, tels que les chemins BBjServices webapp et files ou le nom de périphérique Windows con, sont refusés avant l’écriture de l’archive.

Chaque classe d’entrée appartient à une seule application déployée. Le déploiement de cette classe sous un deuxième nom échoue avec le message suivant :

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

Déployer depuis une autre machine​

Un déploiement depuis une autre machine, par exemple un serveur CI, utilise un jeton d’autorisation sur HTTPS :

  1. Sur la machine BBj, activez le point de terminaison avec un port SSL.
  2. Dans Enterprise Manager, créez un jeton sous Security, Authentication Tokens. Vous pouvez également le renouveler et le révoquer à cet endroit.
  3. Transmettez le jeton à la compilation :
mvn package webforj:bbj-deploy \
-Dwebforj.bbj.deployment.url=https://bbj.example.com:8443/webforj-bbjship \
-Dwebforj.bbj.admin.token="$BBJ_ADMIN_TOKEN"

Le certificat du serveur web BBjServices doit correspondre au nom d’hôte de l’URL ou se trouver dans le truststore Java de la compilation. Java ne fait pas confiance au certificat par défaut de BBj, car il est auto-signé.

Une URL http:// vers une autre machine est refusée des deux côtés. L’objectif s’arrête avant d’envoyer quoi que ce soit, et BBjShip répond HTTP 403 à toute requête reçue via HTTP depuis une autre machine. Une URL désignant la machine BBj elle-même — localhost ou l’une de ses propres adresses — fonctionne avec HTTP.

Pour déployer malgré tout via HTTP vers une autre machine, par exemple une machine virtuelle sur votre ordinateur, autorisez cette méthode des deux côtés. Sur la machine BBj, exécutez bbjship remote enable --allow-unencrypted avec les ports du point de terminaison. Dans la compilation, définissez <deployment><allowUnencrypted>true</allowUnencrypted> ou transmettez la propriété :

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

L’objectif affiche alors un avertissement et procède au déploiement. Les identifiants sont transmis en clair sur le réseau pour cette connexion.

Paramètres de l’application​

À chaque déploiement, BBjShip lit le fichier webforj.conf de l’application et applique ces propriétés à l’application dans Enterprise Manager. Un redéploiement prend en compte toute valeur modifiée. Une propriété non définie conserve la valeur par défaut de BBjServices.

webforj.conf
webforj.assetsSource = packaged
webforj.disallowConsole = true
webforj.programArguments = ["mode=demo", "region eu"]
PropriétéValeur par défautDescription
webforj.assetsSourceNon définiepackaged sert les fichiers statiques ws:// et les icônes icons:// de l’application à l’adresse /webforj/<publish name>/. Sans cette propriété, une application utilisant icons:// ne démarre pas.
webforj.showClientConfirmationDialogfalseIndique si le navigateur demande une confirmation avant la fermeture de la page.
webforj.disallowConsoletrueIndique si la console est désactivée dans l’application.
webforj.secureValeur par défaut de BBjServicesIndique si l’application s’exécute sur une connexion sécurisée.
webforj.configFileValeur par défaut de BBjServicesChemin du fichier de configuration BBj utilisé par l’application, tel que BBjServices le lit sur la machine BBj. Le chemin est transmis tel quel ; il peut donc désigner un fichier accessible uniquement au serveur.
webforj.programArgumentsAucunArguments du programme de l’application, sous forme de liste de chaînes ou d’une seule chaîne.

Un fichier webforj.conf non valide fait échouer le déploiement avec une réponse HTTP 400 et la raison de l’échec.

Paramètres​

Les paramètres se trouvent dans le bloc <bbj> de la configuration de webforj-maven-plugin, comme indiqué dans Plugin de compilation. Chaque propriété remplace l’élément correspondant sur la ligne de commande.

Élément MavenPropriété MavenValeur par défautDescription
<home>webforj.bbj.homeDétecté automatiquementDossier d’installation de BBj, utilisé par bbj-setup et watch.
<publishName>webforj.bbj.publishNameNom final de la compilationNom sous lequel l’application est publiée ; voir Noms de publication.
<deployment><url>webforj.bbj.deployment.urlAucune, obligatoireAdresse de BBjShip : http://<host>:<HTTP port>/webforj-bbjship ou https://<host>:<SSL port>/webforj-bbjship.
<deployment><allowUnencrypted>webforj.bbj.deployment.allowUnencryptedfalseAutorise bbj-deploy et bbj-undeploy à transmettre les identifiants via une URL http:// vers une autre machine ; voir Déployer depuis une autre machine.
<admin><username>webforj.bbj.admin.usernameadmin si le nom d’utilisateur et le mot de passe sont tous deux absentsNom d’utilisateur de l’administrateur BBj.
<admin><password>webforj.bbj.admin.passwordadmin123 si le nom d’utilisateur et le mot de passe sont tous deux absentsMot de passe de l’administrateur BBj.
<admin><token>webforj.bbj.admin.tokenVideJeton d’autorisation pour bbj-deploy et bbj-undeploy. Prioritaire sur le nom d’utilisateur et le mot de passe.
<properties>webforj.bbj.properties<home>/cfg/BBj.propertiesFichier de propriétés BBjServices dans lequel une exécution de développement écrit les paramètres de remplacement à chaud.
<development><classFolder>—Répertoire de sortie de la compilationDossier de classes d’une exécution de développement, tel que BBjServices le lit.
—webforj.bbj.forcefalsePermet à bbj-setup de remplacer une installation de BBjShip d’une autre version. Propriété uniquement.

Si le nom d’utilisateur est fourni sans mot de passe, ou le mot de passe sans nom d’utilisateur, l’objectif s’arrête.

Équipe webforJ

Besoin d’aide ?

Parlez de votre projet aux ingénieurs de webforJ.

Planifier un appel

Nous parlons EN · DE · FR · ES