JSF上的Tomcat7与Java6系统时间显示委内瑞拉时间



编辑:JSF实现:Mojorra 2.1.9

我的web应用程序运行异常。当我在服务器机器上部署我的应用程序时,它会显示委内瑞拉标准时间的时间。就像这个太阳8月5日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>
JSF日期-时间转换器默认使用UTC。只有当您设置该上下文参数时,它才会默认为系统时区(底层服务器平台的时区)。显然,有问题的服务器被配置为默认委内瑞拉时区(也许是因为它托管在委内瑞拉,由一个不知道自己在做什么的服务器管理员维护?)。

删除该上下文参数应该可以解决您的具体问题,假设您没有覆盖JSF默认日期-时间转换器或其设置,例如通过自定义转换器或设置<f:convertDateTime>timeZone属性。

如果这并不能以某种方式解决您的问题,那么尝试升级JSF实现(但是,我不记得Mojarra中有任何与此相关的错误,所以如果您使用Mojara,我不认为升级会解决它;不过,我不确定MyFaces),或者尝试显式设置整个页面中每个<f:convertDateTime>标记的timeZone属性。

我用"-Dusser.timezone=Europe/Instanbul"参数启动了tomcat,现在时间到了。我不明白为什么默认时间是委内瑞拉时间,但这为我解决了问题。我将进一步研究这一点,以了解是什么导致了这个问题。

相关内容

  • 没有找到相关文章