获取Java应用程序服务器名称和版本

我正在使用Java编写Web应用程序,并且此WAR应用程序可以部署到不同的应用程序服务器,例如Tomcat / JBoss / Jetty / Weblogic。

出于诊断目的,我想实现一个动态网页来收集各种环境/系统信息,以便客户可以将这些信息提供给支持工程师进行诊断。

一个有用的信息是应用程序服务器名称和部署此应用程序的版本,例如Tomcat 7.0JBoss 5.1.0Glassfish 3.0等。

我只是想知道是否有任何标准方法从不同的JEE应用程序服务器检索应用程序服务器的名称和版本。

我找到了一些代码来获取部署应用程序的服务器信息。
此代码是用Servlet编写的,用于获取正在运行的服务器信息。

String str1 = getServletContext().getServerInfo();

通过这个,您将获得服务器名称和服务器的版本信息。

我想它会帮助你..

这些类型的信息总是放在一些MBean中 。 请查看ive App Server关于所提供的MBean的文档。 您可以使用JMX API以编程方式访问MBean。

我不认为有一种简单的方法可以做到这一点,但我知道你可以通过检查系统环境属性来识别tomcat

  -- 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}.. 

您可以检查tomcat / jetty / jboss …特定条目,并通过这种方式确定版本和服务器