1

GWT アプリケーションを開発しています。

また、Jboss インスタンスまたは Jetty インスタンスのどちらで実行しているかを知りたいです。

これは、Jetty で実行している場合は、開発モードを実行しており、MyModule.html?codeserver にリダイレクトする必要があることを意味しますが、Jboss で実行している場合は、MyModule.html にリダイレクトする必要があるためです。

しかし、Jetty で実行しているのか、Jboss で実行しているのかをどうやって知ることができるのかわかりません。

4

4 に答える 4

2

アプリケーション コードで、アプリケーションが実行されている Web サーバーを見つけようとしないでください。代わりに、サーバーごとに異なる値を使用して、アプリケーションのコンテキストで識別パラメーターを設定できます。

例えば

JBoss の場合、server.xml は次のようにコンテキスト定義にパラメーターを含めることができます。

<Context ...>
    ...
    <Parameter name="applicationStage" value="prod" />
    ...
</Context>

Jetty の場合、同じコンテキスト パラメータが jetty.xml に入りますが、値は「devo」になります。

于 2012-09-04T02:14:32.653 に答える
1

本番モードと開発モードのどちらを実行しているかを知りたいだけの場合は、試してください

GWT.isProdMode();

もちろん、クライアント側でのみ機能します。

于 2012-09-04T09:32:46.907 に答える
0

(私の知る限り)実行しているアプリケーションサーバーを特定する簡単な方法はありません。これを判断するために、いくつかのシステム プロパティを確認できます。

JBoss:

jboss.server.name

桟橋:

jetty.home

Vikdorが回答で述べているように、環境によってロジックが決定されることはお勧めしませんが。彼の提案はより良いアプローチになるでしょう。

于 2012-09-04T02:18:52.290 に答える
0

JSPでは、

Server is <%= application.getServerInfo()%>

または使用

Server is ${pageContext.servletContext.serverInfo}

サーブレットで、

String server = getServletContext().getServerInfo();
于 2012-09-04T02:20:19.433 に答える