【问题标题】:Get Java application server name and version获取 Java 应用服务器名称和版本
【发布时间】:2011-11-18 10:26:48
【问题描述】:

我正在用Java编写一个Web应用程序,这个WAR应用程序可能会部署到不同的应用服务器上,例如Tomcat/JBoss/Jetty/Weblogic。

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

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

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

【问题讨论】:

  • 不是一个真正的答案,但您似乎可以检查某些配置文件的物理文件路径,它会告诉您它位于 /etc/tomcat7.0 或安装它的任何位置。我确信有一种更程序化的方式,但这对我来说似乎是合理的。

标签: java servlets web


【解决方案1】:

我找到了一些代码,用于获取有关应用程序部署位置的服务器信息。
这段代码是用 Servlet 编写的,用于获取正在运行的服务器信息..

String str1 = getServletContext().getServerInfo();

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

我认为它会对你有所帮助..

【讨论】:

  • 它返回一个字符串,如:Apache Tomcat/7.0.42。谢谢。
【解决方案2】:

我不认为有一个简单的方法可以做到这一点,但我知道你可以通过检查系统环境属性来识别 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... 特定条目并通过该方式确定版本和服务器

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-22
      • 2014-06-15
      • 1970-01-01
      • 1970-01-01
      • 2014-01-15
      • 2012-05-24
      • 1970-01-01
      相关资源
      最近更新 更多