0

Web アプリケーションをセットアップする際のプロパティの処理に関して、Glassfish に問題があります。Jetty の使用から、Amazon AWS で GlassFish を使用したクラスター化された環境セットアップに移行しています。

従来、サーブレットを扱う場合、環境変数で解析する場合は .properties ファイルを使用することを意図していますが、これは分散環境を使用する場合に問題を引き起こします (すべてのクラスター ノードに .properties ファイルを配置する必要があります)。GlassFish には、管理コンソールを介して Web コンテナーのプロパティを構成する機能があります。つまり、プロパティはクラスターを通じて自動的に配布されます。

問題は、変数の取得に関してランダムな動作が発生していることです。初めてテスト アプリケーションを実行したとき、変数を取得できませんでしたが、機能しなくなりました

基本的に、管理UIから環境変数を設定しています。[構成] には 3 つの構成設定があります。1 つはクラスター用 (通常は .config という名前)、1 つは default-config、もう 1 つは server-config です。Web コンテナの下で、呼び出された「someVal」の 3 つすべてにテスト プロパティを配置しました。

次に、Scala (サーブレット 2.5 を使用) で簡単な Scalatra アプリを作成し、この行を使用してプロパティを取得しようとしました。

getServletContext.getInitParameter("someVal")

私が間違ってやっているアイデアはありますか?それは常にnullを返しますか?

更新 私がやろうとしていたことは、物事を行う「正しい」方法ではないようです。私の質問は、GlassFish でクラスターを処理するときに、特定のアプリケーション設定 (.war およびランタイムの外部) を提供する標準的な方法は何ですか。myfear は、データベースを使用することが標準的なアプローチであると述べましたが、私はこれらの構成設定自体を使用して JDBC 接続を定義します。

4

1 に答える 1

0

わかった。あなたはWebコンテナ設定 http://docs.oracle.com/cd/E18930_01/html/821-2431/abedw.htmlを参照しています

残念ながら、これはアプリケーション固有の構成を提供するとは考えられておらず、サーブレット コンテキストからこれらのプロパティにアクセスすることは決してできないと強く信じています。したがって、アプリケーション固有の情報について話している場合は、web.xml でサーブレットの init パラメータを使用できます (使用する必要があります)。使用する場合

getServletContext().setInitParameter("param", "value");

それらを設定できる場合があります(少なくともアプリケーションの実行時)。ここでのクラスターの複製についてはよくわかりません。通常の方法は、データベースに設定を構成することです。

于 2012-07-12T06:11:33.753 に答える