我的开发服务器我的 glassfish Web 应用程序报告它有一个本地 en_US。这导致日期以美国格式显示。我希望我们使用语言环境 en_GB 作为日期。
我的开发服务器是一个虚拟盒子,配置如下:
- Ubuntu Ubuntu 12.04.2 LTS 服务器
- 甲骨文 Java 1.7.0_11
- GlassFish Server 开源版 3.1.2.2(内部版本 5)
- GlassFish 正在使用 upstart 运行
- JavaServerFaces 1.2 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
但是,在我的 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 应用程序在本机服务器区域设置下运行?