`
zizhu8
  • 浏览: 62389 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

关于服务器上tomcat获取时间少8个小时的问题

 
阅读更多

我的抄贴生活又开始了,哈哈。主要是在学习过程中,发现解决一些问题,然后,想记录下来。

在“首选项- >Tomcat- >JVM Settings ”项,设定 JRE 的版本为“ jre1.5.0_06”,并且添加如下几个JVM Parameters :

-Xms128m

-Xmx512m

-Dfile.encoding=UTF8

-Duser.timezone=GMT+08

这是搜到的一种方法。

另一种方法是:

windows Xp pro service pack2 下Tomcat启动时间为GMT,比北京时间少8小时问题处理

机器系统为windows Xp professional service pack2
JDK版本为1.4.2_09
Tomcat版本为5.0.28
?
问题:用控制台启动tomcat,发现显示时间比北京时间少8小时,在通过WEB SERVICE接口与DELPHI通信中,因为时间少8小时导致通信出错.
分析:开始以为是TOMCAT设置时区未设置,不过TOMCAT好象不设置时区咯
????? 第二步JDK上找原因,不过JDK是用native调用的JVM里的配置咯;
????? 第三步JVM里的设置,java -Duser.timezone=Asia/Shanghai不起作用咯,继续找.*.*;
????? 第四步猜想JVM应该是取的windows的时区设置,网上搜搜还真找到几个时区设置出错的情况(非JAVA咯);
????? 第五步找了一台能正常设置时区windows注册表 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones],备份之,覆盖之.;
???? 测试.通过.HOHO~~~~;
据偶理解(好象本来就是这样呼),由于Windows时区设置出错,导致JVM取不到系统设置的时区,JDK在读取时区的时候在取不到的情况下缺省的GMT,从而使Tomcat上显示的时候比北京时间少8小时;
然而,我是通过第一种方法解决的,但是,个人还是认为第二种方法的观点是正确的,而第一种方法只不过是在tomcat里打了个补丁。要是,按第二种方法修改了注册表,估计,也不用设置tomcat了。

临时解决方案:

tomcat项目中Date获取时间不对

<wbr></wbr>

tomcat项目启动后,发现log4j中打印的日志时间不对,查看服务器当前时间是上午09:00,日志中打印的时间为01:00,足足晚了8个小时。

<wbr></wbr>

1.检查服务器的时间和时区设置是否正确,若不对,使用"linux下如何修改时区和时间"进行设置。

<wbr></wbr>

2.打开tomcat文件下的bin/catalina 文件,找到JAVA_OPTS,在设置中增加-Duser.timezone=GMT+08:

set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx800m -Duser.timezone=GMT+08

<wbr></wbr>

重启tomcat,观察日志时间即恢复正确。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics