[英]J2EE app running on Glassfish v3 is not responding to HTTP requests. App logs success but no data sent back over HTTP
[英]Unable to change the Locale on a Glassfish v3 J2EE app
我的開發服務器我的glassfish網絡應用程序報告它有一個本地的en_US。 這導致日期以美國格式顯示。 我希望我們使用locale en_GB作為日期。
我的Dev服務器是一個配置如下的虛擬盒:
主機和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.