2011-09-16 11 views
21

Sto scrivendo un'applicazione Web con Java e questa applicazione WAR può essere distribuita su diversi server delle applicazioni, come Tomcat/JBoss/Jetty/Weblogic.Ottenere il nome del server delle applicazioni Java e la versione

Per scopi diagnostici, vorrei implementare una pagina Web dinamica per raccogliere varie informazioni sull'ambiente/sistema in modo che il cliente possa fornire queste informazioni per supportare gli ingegneri per la diagnostica.

Un pezzo di informazioni che è utile è il nome del server di applicazione e la versione che questa applicazione viene distribuito a, come ad esempio Tomcat 7.0, JBoss 5.1.0, Glassfish 3.0, ecc

Mi chiedo solo se non v'è alcun modo standard per recuperare il nome e la versione del server delle applicazioni da diversi server di applicazioni JEE.

+1

Non proprio una risposta, ma a quanto pare si sarebbe in grado di controllare il percorso del file fisico di alcuni file di configurazione e sarebbe dire che è in/etc/tomcat7.0 o dovunque sia installato. Sono sicuro che c'è un modo più programmatico, ma mi sembra ragionevole. – corsiKa

risposta

25

Ho trovato un codice per ottenere informazioni sul server di dove si distribuisce l'applicazione.
Questo codice è scritto in Servlet per ottenere informazioni sul server in cui è in esecuzione ..

String str1 = getServletContext().getServerInfo();

Con questo si otterrà il nome del server e informazioni sulla versione del server.

Penso che sarà un po 'di quello che aiutare ..

+0

Restituisce una stringa come: 'Apache Tomcat/7.0.42'. Grazie. –

1

Questo tipo di informazioni viene sempre inserito in MBean. Si prega di consultare la rispettiva documentazione del server di App sugli MBeans forniti. È possibile accedere a livello di codice all'MBean utilizzando JMX APIs.

1

Non credo ci sia un modo semplice per fare questo, ma so che è possibile identificare Tomcat dal controllo delle proprietà di ambiente 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}.. 

è possibile controllare per Tomcat/pontile/jboss ... voci specifiche e determinare la versione e il server in tal modo

Problemi correlati