Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tomcat start / stop webapp

3 réponses
Avatar
giganet
Bonjour,

je suis confronté à un souci dans la réalisation d'une application web
Java. Je dois réaliser une application web pilotant l'arret et le
démarrage d'autres applications web au sein d'un seul et meme tomcat (et
sur la meme machine).
1) En cherchant sur le net j'ai trouvé comment on pouvait arreter et
démarrer un serveur tomcat (via Embedded) sur lequel on pouvait ensuite
déployer, supprimer, arreter des applications. Le probleme est que ce
n'est pas exactement ce que je veux faire dans la mesure où je souhaite
piloter les applications web qui se trouve sur le meme serveur que mon
application de pilotage et que quandm on application de pilotage prend
la main, le serveur Tomcat que je veux manipuler existe déjà et est démarré.
2) J'ai ensuite regarder comment les taches Ant de Catalina permettait
l'arret et le démarrage d'applications. Je me suis aperçu qu'elles se
basaient sur l'application web "manager" or cette application web
"manager" ne sera pas présente en production.
3) J'ai donc regarder comment l'application "manager" faisait les arrets
et démarrages mais impossible de créer du code qui fonctionne. Le
ManagerServlet utilise un context et un wrapper qu'il possède localement
mais impossible de voir comment il les a instanciés (m'empechant de
reproduire le code).

Bref, je suis completement largué. Peut etre auriez vous des pistes,
voire, des expériences du meme type me permettant de trouver une
solution... (Autre groupe de discussion qui pourrait m'éclairer?)

Merci!

3 réponses

Avatar
giganet
Bonjour,

je suis confronté à un souci dans la réalisation d'une application web
Java. Je dois réaliser une application web pilotant l'arret et le
démarrage d'autres applications web au sein d'un seul et meme tomcat (et
sur la meme machine).
1) En cherchant sur le net j'ai trouvé comment on pouvait arreter et
démarrer un serveur tomcat (via Embedded) sur lequel on pouvait ensuite
déployer, supprimer, arreter des applications. Le probleme est que ce
n'est pas exactement ce que je veux faire dans la mesure où je souhaite
piloter les applications web qui se trouve sur le meme serveur que mon
application de pilotage et que quandm on application de pilotage prend
la main, le serveur Tomcat que je veux manipuler existe déjà et est
démarré.
2) J'ai ensuite regarder comment les taches Ant de Catalina permettait
l'arret et le démarrage d'applications. Je me suis aperçu qu'elles se
basaient sur l'application web "manager" or cette application web
"manager" ne sera pas présente en production.
3) J'ai donc regarder comment l'application "manager" faisait les arrets
et démarrages mais impossible de créer du code qui fonctionne. Le
ManagerServlet utilise un context et un wrapper qu'il possède localement
mais impossible de voir comment il les a instanciés (m'empechant de
reproduire le code).

Bref, je suis completement largué. Peut etre auriez vous des pistes,
voire, des expériences du meme type me permettant de trouver une
solution... (Autre groupe de discussion qui pourrait m'éclairer?)

Merci!


Finalement j'ai réussi en passant par le JMX de Tomcat...

Avatar
vladutz
Bonjour ,

Peut-tu me donne plus de details sur ce sujet.. je suis interese..

Cordialement,

Mihai
Avatar
giganet
vladutz a écrit :
Bonjour ,

Peut-tu me donne plus de details sur ce sujet.. je suis interese..

Cordialement,

Mihai




ok alors voilà :

il suffit de lancer tomcat en activant l'utilisation de JMX via une
simple option au Java utilisé pour lancer le serveur
"com.sun.management.jmxremote" pour un accès local ou
"Dcom.sun.management.jmxremote.port=<port>" pour un accès distant (y
plein d'autre options comme pour faire du SSL ou bien permettre l'accès
via un login/mot de passe, etc.).
En faisant ça, tomcat va "publier ses objets" sur le réseau JMX et
permettre aux autres applications d' y accéder et de les manipuler (il
existe d'ailleurs une application JConsole fournie avec Java permettant
de monitorer les objets à travers un réseau JMX local ou distant). Bref,
dans mon application, je me connecte au réseau JMX local et accède aux
objets de tomcat y compris les autres applications web qu'il contient.
Je peux donc manipuler les autres applications à volonté y compris en
invoquant (pseudo reflection) des start / stop sur les applications.

Voilà ;)