OVH Cloud OVH Cloud

[tomcat] Récupérer le port HTTP avec un mbean

2 réponses
Avatar
Seb
Bonjour,

J'ai besoin de récupérer dynamiquement, dans du code java, le port HTTP
utilisé par Tomcat.
Je pense qu'il faut utiliser des "mbeans", mais je ne sais pas
exactement comment faire.
Mon application tourne sur un serveur d'application JBoss 3.2.2.

Merci par avance pour votre aide,


Sébastien

2 réponses

Avatar
TestMan
Bonjour,

En premier, connectez-vous avec l'outil jconsole du JDK1.6 sur le
serveur cible afin de parcourrir la structure visible en JMX et vérifier
si l'information y est bien disponible.

Une fois localisé la propriété et l'identifiant de son composant, et
pour la suite :
http://www.javaworld.com/javaworld/jw-08-2005/jw-0801-jmx-p3.html
http://java.sun.com/j2se/1.5.0/docs/guide/jmx/tutorial/tutorialTOC.html

A+

TM


Bonjour,

J'ai besoin de récupérer dynamiquement, dans du code java, le port HTTP
utilisé par Tomcat.
Je pense qu'il faut utiliser des "mbeans", mais je ne sais pas
exactement comment faire.
Mon application tourne sur un serveur d'application JBoss 3.2.2.

Merci par avance pour votre aide,


Sébastien


Avatar
Frederic Lachasse
"Seb" wrote in message
news:fwm9g.133$
Bonjour,

J'ai besoin de récupérer dynamiquement, dans du code java, le port HTTP
utilisé par Tomcat.
Je pense qu'il faut utiliser des "mbeans", mais je ne sais pas exactement
comment faire.
Mon application tourne sur un serveur d'application JBoss 3.2.2.


En utilisant le package javax.management.* défini dans J2EE (pas dans J2SE).

En gros: récupérer le MBeanServer par
MBeanServerFactory.findMBeanServer(null).get(0)
Utiliser MBeanServer.queryMBeans() pour récupérer le MBean gérant Tomcat et
MBeanServer.getAttribute() pour récupérer la valeur de l'attribut contenant
le port HTTP.

Malheureusement, je n'utilise pas JBoss pour l'instant, donc je ne connais
pas précisément le nom du MBean et l'attribut recherché.

De plus, je ne suis pas sûr que cela est exactement ce que tu a besoin
réellement. Si ce que tu veux, c'est le port HTTP utilisé par le client pour
se connecter au servlet, cela n'est pas nécessairement le port de Tomcat, et
il y a un moyen simple et valide pour tout servlet: utiliser
HttpServletRequest.getRequestURL() method puis URL.getPort(). Cette méthode
a l'avantage de marcher avec tout J2EE servlet container, pas seulement
Tomcat sur JBoss

--
Frédéric Lachasse - ECP86