我的開發服務器GlassFish的我的web應用程序報告說,它有一個本地EN_US的。這導致日期以美國格式顯示。我希望我們在日期中使用語言環境en_GB。無法更改區域設置上Glassfish的第三版J2EE應用程序
我的開發服務器配置爲虛框如下:
- 的Ubuntu的Ubuntu 12.04.2 LTS服務器
- 甲骨文的Java 1.7.0_11
- GlassFish應用服務器3.1.2.2版(版本5 )
- GlassFish中使用新貴
- JavaServerFaces 1.2的Web應用程序
無論是主機和虛擬機在我的web應用程序都返回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
然而,當我寫的區域設置日誌文件,或顯示日期時,我可以看到現場設置爲en_US。
Locale locale = Locale.getDefault();
log("Login.login_btn_action(): Default locale = " + locale.toString());
報告
Login.login_btn_action(): Default locale = en_US
爲了解決這個問題,我嘗試了以下(無sucess):
1)在管理員界面,選擇域和區域設置到EN_GB 我可以看到,此設置出現在第一行的domain.xml中:
2)添加在domain.xml中進行額外的JVM選項爲「默認配置」和「服務器配置」來設置user.language和user.country
<jvm-options>-Duser.language=en</jvm-options>
<jvm-options>-Duser.country=GB</jvm-options>
(當然,每次我做出改變我停止和啓動Glassfish的)
請你可以建議其他選項/設置檢查/改變讓我的Java應用程序與本機服務器的語言環境中運行?
他也可能會嘗試根據區域設置更改日期格式。 – Lenymm
感謝mthmulders的建議。使用Locale.setDefault(Locale)是一種解決方法。 但是爲什麼Glassfish不使用操作系統或jvm-option語言環境仍然沒有答案..... – SteveGreenslade