3

私の開発サーバーの私のglassfish Webアプリは、en_USのローカルがあると報告しています。これにより、日付が米国形式で表示されます。日付にロケール en_GB を使用したいと思います。

私の開発サーバーは、次のように構成された仮想ボックスです。

  • Ubuntu Ubuntu 12.04.2 LTS サーバー
  • オラクル Java 1.7.0_11
  • GlassFish サーバー オープン ソース版 3.1.2.2 (ビルド 5)
  • GlassFish は upstart を使用して実行されています
  • JavaServerFaces 1.2 Web アプリ

ホスト マシンと VM の両方がデフォルトの OS ロケールとして en_GB を返します

$ locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=en_GB.UTF-8

ただし、Web アプリでロケールをログ ファイルに書き込むとき、または日付が表示されるときに、ロケールが en_US に設定されていることがわかります。

                Locale locale = Locale.getDefault();
                log("Login.login_btn_action(): Default locale = " + locale.toString());

レポート

Login.login_btn_action(): Default locale = en_US

これを修正するために、次のことを試しました(成功しませんでした):

1) 管理インターフェイスで、[ドメイン] を選択し、ロケールを en_GB に設定すると、この設定が domain.xml の最初の行に表示されることがわかります。

2) domain.xml の追加の jvm-options を「default-config」および「server-config」に追加して、user.language および user.country を設定します。

    <jvm-options>-Duser.language=en</jvm-options>
    <jvm-options>-Duser.country=GB</jvm-options>

(もちろん、変更を加えるたびに、Glassfish を停止して再起動します)

Java アプリをネイティブ サーバー ロケールで実行するためにチェック/変更する他のオプション/設定を提案できますか?

4

1 に答える 1