一部のコードは、JavaEEアプリケーションサーバーを含むさまざまな環境で再利用できます。コードがアプリケーションサーバーで実行されているかどうか、およびどのアプリケーションサーバーで実行されているかを知っておくと便利な場合があります。
私は、アプリケーションサーバーに典型的ないくつかのシステムプロパティをチェックすることによってそれを行うことを好みます。たとえば、
jboss.server.name
JBossの場合catalina.base
Tomcatの場合
誰かが他のサーバーの適切なプロパティ名を知っていますか?Weblogic、Websphere、Oracle IAS、その他?
特定のアプリケーションサーバーがインストールされているかどうかを確認するのは非常に簡単です。System.getProperties()行をJSP、サーブレット、EJBに追加して、結果を出力するだけです。
自分でやることはできますが、サーバーをインストールして動作させるにはかなりの時間がかかります。
私はこの議論を読みました:アプリケーションが実行されているアプリケーションサーバーのタイプを決定する方法は?
しかし、私はシステムプロパティを使用することを好みます。それはより簡単で絶対にポータブルなソリューションです。コードは、サーブレット、EJBContext、JMXなどの他のAPIに依存しません。