簡體   English   中英

無法更改Glassfish v3 J2EE應用程序上的Locale

[英]Unable to change the Locale on a Glassfish v3 J2EE app

我的開發服務器我的glassfish網絡應用程序報告它有一個本地的en_US。 這導致日期以美國格式顯示。 我希望我們使用locale en_GB作為日期。

我的Dev服務器是一個配置如下的虛擬盒:

  • Ubuntu Ubuntu 12.04.2 LTS服務器
  • Oracle Java 1.7.0_11
  • GlassFish Server開源版3.1.2.2(版本5)
  • GlassFish正在使用暴發戶運行
  • JavaServerFaces 1.2 Web應用程序

主機和VM都將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)在Admin界面中,選擇Domain並將語言環境設置為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應用程序與本機服務器區域設置一起運行?

根據Locale.getDefault()的Javadoc,您可以使用Locale.setDefault(Locale)更改默認語言Locale.setDefault(Locale) 顯然,在應用程序中對區域設置進行硬編碼並不是很好,因此您可以考慮從配置文件或JVM選項中讀取它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM