4

コードが現在 App Server 内にあるか App Server 外にあるかを確認するために、POJO から呼び出すことができるものはありますか?

このようなもの(大まかな擬似コードで):

System.getRunningEnvironment().equals(Environment.Glassfish)

また

System.getRunningEnvironment().equals(Environment.ApplicationServer)

また

System.getRunningEnvironment().equals(Environment.JavaSE)
4

7 に答える 7

4

AppServer 初期化スクリプトを変更できる場合 (このリンクを見てください):

AppServer 初期化スクリプトに -DRunningInAppServer=true を追加します。

アプリケーション初期化スクリプトに -DRunningInAppServer=false を追加します。

次に、この方法を使用します。

public boolean isRunningInAppServer() {

        if ("true".equals(System.getProperty("RunningAppServer"))) {
            return true;
        }
        return false;
}
于 2009-03-25T17:53:22.743 に答える
0

一部のアプリケーションサーバーは、JBoss などのシステムプロパティを設定します: http://community.jboss.org/wiki/JBossProperties

于 2010-04-05T12:19:03.953 に答える
0

これを直接判断する方法はないと思います。はい、SourceRebel が言うように、システム プロパティを設定できます。ただし、個人的にはこれを行うことは避けたいと思います。これは、いくつかの隠れた結合が行われているためです。関数は、機能するために正しく設定する必要があるシステム プロパティに依存していますが、これを反映するためにインターフェイスに明確に定義されたものはありません。 . それが何であるかを示すパラメーターを渡すだけで、呼び出し元に正しいパラメーターを渡す責任を負わせた方がはるかに良いと思います。その後、このパラメーターの存在は関数シグネチャで明確に確認でき、それを使用する人は誰でも、正しく設定する必要があるという強力な手がかりを得ることができます。おそらくコールチェーンのある時点で、デスクトップアプリまたはWebページから呼び出しているため、発信者に正しく設定させることは簡単です。

于 2010-03-26T16:53:57.413 に答える
0

System.getProperties()私はアプリケーション サーバーを使用したことはありませんが、 /でこれを実現できるかもしれません。System.getProperty(...)

于 2009-03-23T14:07:43.580 に答える