Déploiement 26.03
Le plugin Maven webforJ déploie une application sur BBjShip à l’aide de trois objectifs :
| Objectif | S’exécute | Fonction |
|---|---|---|
bbj-package | avec la phase package | Écrit l’archive de déploiement target/bbj/<publish name>.zip |
bbj-deploy | avec la phase install | Écrit l’archive et la déploie sur BBjShip |
bbj-undeploy | manuellement | Supprime 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.
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.
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 :
- Sur la machine BBj, activez le point de terminaison avec un port SSL.
- Dans Enterprise Manager, créez un jeton sous Security, Authentication Tokens. Vous pouvez également le renouveler et le révoquer à cet endroit.
- 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.assetsSource = packaged
webforj.disallowConsole = true
webforj.programArguments = ["mode=demo", "region eu"]
| Propriété | Valeur par défaut | Description |
|---|---|---|
webforj.assetsSource | Non définie | packaged 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.showClientConfirmationDialog | false | Indique si le navigateur demande une confirmation avant la fermeture de la page. |
webforj.disallowConsole | true | Indique si la console est désactivée dans l’application. |
webforj.secure | Valeur par défaut de BBjServices | Indique si l’application s’ex écute sur une connexion sécurisée. |
webforj.configFile | Valeur par défaut de BBjServices | Chemin 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.programArguments | Aucun | Arguments 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 Maven | Propriété Maven | Valeur par défaut | Description |
|---|---|---|---|
<home> | webforj.bbj.home | Détecté automatiquement | Dossier d’installation de BBj, utilisé par bbj-setup et watch. |
<publishName> | webforj.bbj.publishName | Nom final de la compilation | Nom sous lequel l’application est publiée ; voir Noms de publication. |
<deployment><url> | webforj.bbj.deployment.url | Aucune, obligatoire | Adresse de BBjShip : http://<host>:<HTTP port>/webforj-bbjship ou https://<host>:<SSL port>/webforj-bbjship. |
<deployment><allowUnencrypted> | webforj.bbj.deployment.allowUnencrypted | false | Autorise 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.username | admin si le nom d’utilisateur et le mot de passe sont tous deux absents | Nom d’utilisateur de l’administrateur BBj. |
<admin><password> | webforj.bbj.admin.password | admin123 si le nom d’utilisateur et le mot de passe sont tous deux absents | Mot de passe de l’administrateur BBj. |
<admin><token> | webforj.bbj.admin.token | Vide | Jeton 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.properties | Fichier 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 compilation | Dossier de classes d’une exécution de développement, tel que BBjServices le lit. |
| — | webforj.bbj.force | false | Permet à 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.