2011-09-16 30 views
21

私はJavaでWebアプリケーションを作成していますが、このWARアプリケーションはTomcat/JBoss/Jetty/Weblogicなどの異なるアプリケーションサーバーに展開できます。Javaアプリケーションサーバーの名前とバージョンを取得

診断目的で、さまざまな環境/システム情報を収集するための動的Webページを実装して、お客様がこれらの情報をエンジニアが診断用に提供できるようにしたいと考えています。

有用な情報のワンピースは、このようなTomcat 7.0JBoss 5.1.0Glassfish 3.0として、このアプリケーションがに展開されることをアプリケーション・サーバー名とバージョンである、など

いかなるの標準的な方法があるかどうか私は疑問に思う異なるJEEアプリケーションサーバーからアプリケーションサーバーの名前とバージョンを取得します。

+1

...答えは何ていないのに役立ちますが、あなたには、いくつかのコンフィギュレーション・ファイルの物理ファイルパスを確認することができるだろうと思われると、それは/ etcにあるのですあなたを言うだろう/と思いますtomcat7.0またはそれがインストールされている場所。私はよりプログラム的な方法があると確信していますが、これは私にとっては妥当と思われます。 – corsiKa

答えて

25

アプリケーションの展開先のサーバー情報を取得するためのコードがあります。このことにより、このコードは、それが実行されているサーバーの情報を取得するためにサーブレットで書かれている
..

String str1 = getServletContext().getServerInfo();

サーバー名とサーバーのバージョン情報を取得します。

私はそれはいくつかのあなたが本当に

+0

'Apache Tomcat/7.0.42'のような文字列を返します。ありがとう。 –

1

これらの情報は常にMBeanに入れられます。提供されているMBeanに関するApp Serverのドキュメントを参照してください。 JMX APIsを使用して、プログラムでMBeanにアクセスできます。

1

私はこれを行う簡単な方法があるとは思わないが、私はあなたがTomcatの/桟橋/ JBoss版をチェックすることができるシステム環境プロパティ

-- 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を識別することができます知っています...その方法でバージョンとサーバーを判断してください。

関連する問題