有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法更改Glassfish v3 J2EE应用程序上的区域设置

我的开发服务器我的glassfish web应用程序报告说,它有一个en_US本地服务器。这导致日期以美国格式显示。我想让我们用locale en_GB来表示日期

我的开发服务器是一个虚拟机箱,配置如下:

  • Ubuntu 12.04.2 LTS服务器
  • Oracle Java 1.7.0_11
  • GlassFish服务器开源版本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)在管理界面中,选择域并将区域设置设置为en_GB 我可以看到这个设置出现在域中。xml在第一行:

2)在域中添加额外的jvm选项。xml设置为“默认配置”,而“服务器配置”设置为用户。语言和用户。乡间

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

(当然,每次我做出改变时,我都会停下来,开始做Glassfish)

请您建议其他选项/设置以检查/更改,以使我的Java应用程序在本机服务器区域设置下运行,好吗


共 (1) 个答案

  1. # 1 楼答案

    根据^{}的Javadoc,可以使用^{}更改默认语言环境。显然,在你的应用程序中硬编码一个区域是不太好的,所以你可以考虑从配置文件或JVM选项读取它。p>