2011-09-16 13 views
21

Estoy escribiendo una aplicación web con Java, y esta aplicación WAR se puede implementar en diferentes servidores de aplicaciones, como Tomcat/JBoss/Jetty/Weblogic.Obtener el nombre del servidor de aplicaciones Java y la versión

Para fines de diagnóstico, me gustaría implementar una página web dinámica para recopilar información del entorno/sistema para que el cliente pueda proporcionar esta información a los ingenieros de soporte para el diagnóstico.

Una pieza de información que es útil es el nombre del servidor de aplicaciones y la versión que esta aplicación se implementa en, como Tomcat 7.0, JBoss 5.1.0, Glassfish 3.0, etc.

Me pregunto si hay alguna manera estándar para recuperar el nombre y la versión del servidor de aplicaciones de diferentes servidores de aplicaciones JEE.

+1

No es realmente una respuesta, pero parecería que sería capaz de comprobar la ruta de acceso física de algún archivo de configuración y le tomaría decir que es en/etc/tomcat7.0 o donde sea que esté instalado. Estoy seguro de que hay una forma más programática, pero esto me parece razonable. – corsiKa

Respuesta

25

He encontrado un código para obtener información del servidor donde implementa su aplicación.
Este código está escrito en Servlet para obtener información del servidor en el que se está ejecutando ..

String str1 = getServletContext().getServerInfo();

Con esto obtendrá el nombre del servidor y la información de la versión del servidor.

Creo que será algo de lo que ayuda ..

+0

Devuelve una cadena como: 'Apache Tomcat/7.0.42'. Gracias. –

1

Este tipo de información siempre se pone en algunos MBean. Por favor, consulte la documentación del servidor de aplicaciones respectiva sobre los MBeans que proporciona. Puede acceder mediante programación al MBean usando JMX APIs.

1

No creo que hay una manera fácil de hacer esto, pero sé que se puede identificar Tomcat de comprobar las propiedades de entorno del sistema

-- listing properties -- 
java.util.logging.config.file=/home/willie/.netbeans/7.0/apache-tom... 
user.dir=/home/willie/apache-tomcat-7.0.14/bin 
java.runtime.version=1.6.0_26-b03 
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment 
java.endorsed.dirs=/home/willie/apache-tomcat-7.0.14/end... 
os.arch=amd64 
java.io.tmpdir=/home/willie/.netbeans/7.0/apache-tom... 
java.naming.factory.url.pkgs=org.apache.naming 
os.name=Linux 
sun.jnu.encoding=UTF-8 
java.library.path=/usr/lib/jvm/java-6-sun-1.6.0.26/jre/... 
tomcat.util.scan.DefaultJarScanner.jarsToSkip=bootstrap.jar,commons-daemon.jar,tomc... 
java.specification.name=Java Platform API Specification 
java.class.version=50.0 
sun.management.compiler=HotSpot 64-Bit Tiered Compilers 
os.version=2.6.38-8-generic 
user.home=/home/willie 
user.timezone=Africa/Johannesburg 
catalina.useNaming=true 
java.awt.printerjob=sun.print.PSPrinterJob 
java.specification.version=1.6 
file.encoding=UTF-8 
catalina.home=/home/willie/apache-tomcat-7.0.14 
user.name=willie 
java.class.path=/home/willie/apache-tomcat-7.0.14/bin... 
java.naming.factory.initial=org.apache.naming.java.javaURLContext... 
sun.security.krb5.debug=false 
package.definition=sun.,java.,org.apache.catalina.,org.a... 
java.vm.specification.version=1.0 
sun.arch.data.model=64 
java.home=/usr/lib/jvm/java-6-sun-1.6.0.26/jre 
sun.java.command=org.apache.catalina.startup.Bootstrap... 
catalina.base=/home/willie/.netbeans/7.0/apache-tom... 
file.separator=/ 
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport... 
common.loader=${catalina.base}/lib,${catalina.base}.. 

puede comprobar para Tomcat/embarcadero/jboss ... entradas específicas y determinar la versión y el servidor por ese medio

Cuestiones relacionadas