Получить имя и версию сервера приложений Java
Я пишу веб-приложение с Java, и это приложение WAR может быть развернуто на разных серверах приложений, таких как Tomcat/JBoss/Jetty/Weblogic.
В целях диагностики я хотел бы использовать динамическую веб-страницу для сбора различной информации об окружающей среде/системе, чтобы клиент мог предоставить эту информацию для поддержки инженеров для диагностики.
Одна полезная информация - это имя и версия сервера приложений, к которым это приложение развертывается, например Tomcat 7.0
, JBoss 5.1.0
, Glassfish 3.0
и т.д.
Мне просто интересно, есть ли стандартный способ для получения имени и версии сервера приложений с разных серверов приложений JEE.
Ответы
Ответ 1
Я нашел код для получения информации о том, где вы развертываете приложение.
Этот код написан в Servlet для получения информации о сервере, в которой он запущен.
String str1 = getServletContext().getServerInfo();
При этом вы получите имя сервера и информацию о версии сервера.
Я думаю, что это поможет вам.
Ответ 2
Эти типы информации всегда помещаются в MBean. Пожалуйста, ознакомьтесь с документацией по уважительному серверу App Server о том, как MBeans предоставляет. Вы можете программным образом обращаться к MBean с помощью JMX API.
Ответ 3
Я не думаю, что есть простой способ сделать это, но я знаю, что вы можете определить, что 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... конкретные записи и определить версию и сервер с помощью этого