2011-09-16 92 views
21

我正在用Java编写Web应用程序,并且此WAR应用程序可能部署到不同的应用程序服务器,如Tomcat/JBoss/Jetty/Weblogic。获取Java应用程序服务器名称和版本

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

其中一幅是有用的应用程序服务器的名称和版本,这个应用程序被部署到如Tomcat 7.0JBoss 5.1.0Glassfish 3.0

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

+1

不是一个真正的答案,但它似乎你将能够检查一些配置文件的物理文件路径,它会告诉你这是在/ etc/tomcat7.0或任何地方安装。我确信有更多的编程方式,但这对我来说似乎是合理的。 – corsiKa

回答

25

我已经找到一些代码来获取您的应用程序的部署位置的服务器信息。
此代码是用Servlet来得到它正在运行的服务器信息..

String str1 = getServletContext().getServerInfo();

通过这一点,你将获得服务器名和服务器的版本信息。

我认为这会有些什么帮助你..

+0

它返回一个字符串,如:“Apache Tomcat/7.0.42”。谢谢。 –

1

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

1

我不认为有一个简单的方法来做到这一点,但我知道你可以从检查系统环境属性

-- 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的/码头/ JBoss的标识tomcat的...具体条目并确定版本和服务器的意思

相关问题