编辑:JSF实现: Mojorra 2.1.9
我的web应用程序的行为很奇怪。当我在服务器机器上部署我的应用程序时,它显示了委内瑞拉标准时间。像这样Sun Aug 05 11:46:26 VET 2012
问题是我不在委内瑞拉。我检查了服务器上的时区配置,它是正确的。当我在我的本地机器上运行应用程序时,根本没有问题,时间是正确的。但在部署时,时机是错误的。
我将下面的上下文参数放入web.xml中,但它不会有任何帮助。我不知道是什么问题
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>发布于 2012-08-06 04:19:33
我用“-Duser.timezone=Europe/ is”参数启动了tomcat,现在是时候了。我不明白为什么默认时间是委内瑞拉时间,但这解决了我的问题。将进一步研究这一问题,以了解是什么导致了这个问题。
发布于 2012-08-06 00:25:24
默认情况下,JSF日期时间转换器使用UTC。只有当您设置该上下文参数时,它才会默认为系统时区(底层服务器平台的时区)。显然,有问题的服务器被配置为默认的委内瑞拉时区(可能是因为它是在委内瑞拉托管的,由一个不知道自己在做什么的serveradmin维护?)。
删除上下文参数应该可以解决您的具体问题,假设您使用而不是覆盖了JSF date time转换器或它们的设置,例如,通过自定义转换器或通过设置<f:convertDateTime>的timeZone属性。
如果这不能以某种方式解决您的问题,那么尝试升级JSF实现(但是我不记得Mojarra中有任何与此相关的bug,所以如果您使用Mojarra,我不认为升级可以解决这个问题;但是我不确定MyFaces ),或者尝试显式地设置页面中每个<f:convertDateTime>标记的timeZone属性。
https://stackoverflow.com/questions/11818038
复制相似问题