Exécution

Démarrer le serveur

Une fois l’installation effectuée, la commande ci-dessous va démarrer le serveur SAINet:

./run-server.sh --runtime <runtime> --start

Le serveur va démarrer et au bout de quelques minutes, le bloc de texte suivant sera affiché:

================================================
SAINet Embedded Server version 4.10.0-20201007-122115.
The domain payara is now up and running. (inst:PYA, env:#local)
The GlassFish/Payara installation dir is /tmp/gfembed14043435345614509593tmp
The SAINet runtime dir is /home/server/runtime_ori
Ports used: HTTP=9090, HTTPS=9191, ADMIN=5858
URL: http://localhost:9090/SNV4SRV-ws-war/EPS
Host: sagittarius/127.0.1.1
================================================
You can use <ctrl> + C to shut it down.

A partir de ce moment, il est possible d’ouvrir un navigateur et de se rendre sur l’URL https://localhost:9191. Après avoir accepté l’avertissement relatif au certificat, une page affichera comme quoi SAINet est en ligne et permet de télécharger l’installeur du client riche qui permettra de s’y connecter.

Par défaut sur un nouveau serveur, les informations de connexion sont:

  • Utilisateur: saierp
  • Mot de passe: bootStrap373746

Si un client riche SAINet est déjà installé sur la machine, il suffit de changer l’URL dans le fichier SAINETV4.ini.

Info:

Il est possible de se connecter au serveur en HTTP (http://localhost:9090) ou en HTTPS (https://localhost:9191).

Il est possible d’avoir plusieurs serveurs lancés en même temps sur la même machine. Le bloc de texte final indique quels sont les ports à utiliser.

En cas de problème

Parfois, le serveur ne démarre pas et affiche une erreur comme celle-ci:

Server is starting...
...
java.lang.RuntimeException: Unable to deploy SAINet EAR (C:\Users\remi\AppData\Local\Temp\gfembed5146000458384952507tmp)
        at ch.saierp.sainet.embedded.server.SAINetServer.start(SAINetServer.java:1753)
        at ch.saierp.sainet.embedded.server.cli.SAINetServerMain.lambda$startServer$14(SAINetServerMain.java:1129)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
. 50375ms
 error.

Dans ces conditions, il est possible d’utiliser l’option --verbose pour savoir plus précisément où se trouve le problème. Généralement, il peut s’agir des points suivants:

  • Le projet n’a pas été compilé avec la dernière version de la branche en cours, ou alors le master n’a pas été recompilé depuis le dernier git pull.
  • Le code à chaud ne compile pas (projets server/SNV4SRV-dbcode ou server/SNV4SRV-dbcode-apis).

En cas de doute, se référer à la compilation.

Arrêter le serveur

Il suffit de faire <ctrl> + c dans la console où il a été lancé pour arrêter le serveur.

Mettre à jour le serveur

Attention:

Le serveur doit être arrêté avant d’appliquer la mise à jour.

Pour mettre à jour un serveur installé dans <runtime>, utiliser la commande suivante:

./run-server.sh --runtime <runtime> --update
Info:

Il est possible d’utiliser directement le paramètre --start pour lancer le serveur.

Lancement manuel

Le script run-server.sh permet de faciliter le lancement du serveur SAINet en appliquant automatiquement les options qui sont nécessaires au debuggage. Le serveur est démarré avec les paramètres suivants:

  • -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9009: permet à un IDE d’y attacher un debugger.
  • --admin-socket-port 9019: permet d’exécuter les tests d’intégration depuis un autre processus.
  • Les paramètres passés à run-server.sh sont automatiquement transférés au serveur SAINet.
Note:

Afin d’obtenir le fichier SNV4SRV-server-full-embedded.jar, il est nécessaire de compiler avec le profile full-package: mvn clean package -pl external/SNV4SRV-server -P no-check,full-package.

La commande ./run-server.sh --runtime <runtime> --start correspond à:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9009 \
  external/SNV4SRV-server/target/SNV4SRV-server-full-embedded.jar \
  --admin-socket-port 9019
  --runtime <runtime>
  --start

Lancement manuel via maven

Il est possible de lancer le serveur sans avoir besoin de compiler le serveur (c’est ce que fait le script run-server.sh) afin d’accélérer le démarrage.

mvn -q exec:java -pl external/SNV4SRV-server \
    -Dexec.args='--admin-socket-port 9019 --runtime <runtime> --start'

Exécution de commandes directes

Afin de pouvoir automatiser certain processus, il est possible de lancer les commandes disponibles dans la CLI directement:

mvn -q exec:java \
    -pl external/SNV4SRV-server \
    -Dexec.args='--noconsole --admin-socket-port 9019 -c infos'
Note:

Afin de pouvoir utiliser le paramètre --command (ou -c), il est nécessaire de passer également le paramètre --runtime ou --admin-socket-port.

Chaque commande est contrôlée et lorsque l’une d’entre elle ne fonctionne pas, le processus s’arrête. Lorsque plusieurs commandes doivent être exécutées directement (en précisant plusieurs fois le paramètre -c), il peut être utile de ne pas faire cette vérification et de continuer l’exécution des commandes suivantes. Dans ce cas, il suffit de préfixer la commande avec un !.

mvn -q exec:java \
    -pl external/SNV4SRV-server \
    -Dexec.args='--noconsole --admin-socket-port 9019 -c "!invalid" -c "infos" -c "status"'