Tomcat时区设置方法[转]

  最近被问到了关于Tomcat时区设置方法,还没碰到类似的问题,网上说是记录日志和定时任务时可能会出现,目前还未发现,先记录下来。

原文地址:http://blog.csdn.net/x_yp/article/details/6234327,下面为原文:

今天在项目中碰到了一个tomcat时间跟系统时间不一致的问题,上网找到了解决方法,参见网址:http://evanmin.javaeye.com/blog/849844

一,在catalina.bat中
配置如下:

set JAVA_OPTS=%JAVA_OPTS% -Duser.timezone=GMT+08 -Xms256m
-Xmx800m
 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
 -Djava.util.logging.config.file="%CATALINA_BASE%/conf/logging.properties"

-Xms256m
-Xmx800m(初始化内存大小为256m,可以使用的最大内存为800m),
 -Duser.timezone=GMT+08
//设置为北京时间

这样设置后,时间不一致问题解决,但是当把Tomcat放到Window服务中,作为服务启动时,问题有出现了。上网终于找了了原因,参见网址:http://www.simpleframework.net/bbs/1443/2121.html

windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。

所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms
-Xmx来调整应用程序的初始内存和最大内存:

如:java -Xms64m -Xmx128m a.jar.

tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。在Tomcat在改变这个设置

有两种方法:

1. 适合用%tomcat_home%/bin中的startup.bat脚本启动,需要在环境变量中加上CATALINA_OPTS这个属性 。

如 SET CATALINA_OPTS= -Xms64m -Xmx512m;

ms是最小的,mx是最大,64m, 512m分别是指内存的初始和最大容量.

因 为:用startup.bat启动tomcat服务器,会调用catalina.bat文件,在Catalian.bat文件的166行“rem
Execute Java with the applicable properties ”下面会加载系统设置的相关属性。

其中就有%CATALINA_OPTS%这一项。这样tomcat在启动时就会将内存设置为指定的值。

2. 适合将tomcat作为系统服务启动,这时候上面设置CATALINA_OPTS 属性的方法就不适用了,因为作为系统服务的话,系统启动时调用的是
%tomcat_home%/bin/tomcat5w.exe,他读取注册表中的值,而不是catalina.bat的设置,因此需要修改注册表:

解决办法:

修改注册表HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Tomcat Service
Manager/Tomcat5/Parameters/JavaOptions

原值为

-Dcatalina.home="C:/ApacheGroup/Tomcat 5.0"

-Djava.endorsed.dirs="C:/ApacheGroup/Tomcat 5.0/common/endorsed"

-Xrs

加入 -Xms300m -Xmx350m

重起tomcat服务,设置生效。

同样我在注册表中加入-Duser.timezone=GMT+08 ,就可解决出现的问题。

时间: 2024-11-05 15:59:39

Tomcat时区设置方法[转]的相关文章

Java heap space设置方法记录

最近被 OutOfMemory Error折腾得够呛,记载一点设置JVM虚拟机内存Javaheap space的方法. Tomcat 7 参考: http://www.davidghedini.com/pg/entry/install_tomcat_7_on_centos http://blog.csdn.net/f_zongjian/article/details/5723665 网上找了半天tomcat的设置方法,各式各样.其实非常简单,设置JAVA_OPTS参数. Windows环境下修改

?????使用??AdvancedInstaller打包web工程设置tomcat端口的方法

原文:?????使用??AdvancedInstaller打包web工程设置tomcat端口的方法 1.首先,要把你要打包的tomcat下的server.xml文件删掉,因为tomcat自带的server.xml无法与你在Advanced Installer添加的对话框中的编辑框相关联. 2.随便找个地方,只要不是在要打包的tomcat下就行,新建一个server.xml文件,内容可以直接复制tomcat下的server.xml文件的内容. 3.在AdvancedInstaller的Dialog

Tomcat下设置项目为默认项目

项目的实际使用中经常需要将当前项目设为tomcat的默认项目,而不是进入到tomcat的页面,有几种方法可以实现,注意第二种.第三种情况需要先删除webapps下的ROOT目录,否则会失败. 一.将自己的项目改名为ROOT注意项目名称要大写 如果改完后没生效,建议清空tomcat中的work目录(缓存) 二.修改配置文件server.xml 增加<Context path="" docBase="Cluster" debug="0" rel

eclipse环境下tomcat远程调试方法

前提:Windows环境tomcat是以catalina.bat方式而非Windows服务形式启动(两者所使用的JAVA配置及JVM参数会有差异). 服务器段设置 方法1:修改CATALINA_OPTS 修改 catalina.bat文件,添加:Set  "CATALINA_OPTS=-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" 参数说明: -Xdebug                 

在 Tomcat 中设置 HTTP 基本认证

在 Tomcat 中设置 HTTP 基本认证的示例 在 $TOMCAT_HOME\conf\tomcat-users.xml 文件中配置角色和用户: <tomcat-users> <role rolename="all"/> <role rolename="admin"/> <user username="all" password="all" roles="all"

IDEA tomcat热部署方法及乱码问题解决

在项目开发过程中,我们一般希望在修改完代码之后不重启项目即可提现出修改的结果,那么热部署项目就显得十分必要了.在idea中将项目热部署至tomcat中的方法如下: 首先打开tomcat配置界面,在server中 将 "On Update action"."On frame deactivation" 都选择 update classes and resources 然后选择deployment,点击加号,选择要发步项目的exploded, 然后设置所配置tomcat

TOMCAT 优化设置

增加JVM堆内存大小修复JRE内存泄漏线程池设置压缩数据库性能调优Tomcat本地库 第1步 – 提高JVM栈内存Increase JVM heap memory 你使用过tomcat的话,简单的说就是“内存溢出”. 通常情况下,这种问题出现在实际的生产环境中.产生这种问题的原因是tomcat使用较少的内存给进程,通过配置TOmcat的配置文件(Windows 下的catalina.bat或Linux下的catalina.sh)可以解决这种问题.这种解决方法是通过增加JVM的栈内存实现的.也就是

mysql-connector-java 6.x 时区设置

最近遇到了一个问题,java从mysql从读出的时间与本地时间有14个小时的时间差,经查证.测试解决了此问题,在此总结一下: 一.使用mysql-connector-java 6.x版本驱动需要做如下配置: 1.引入pom <dependency>   <groupId>mysql</groupId>   <artifactId>mysql-connector-java</artifactId>   <version>6.0.6<

iOS 时区设置

最近在考虑获取当前时间的问题,因为我们的APP不一定只在天朝境内使用,现在很多人出国游玩,当他们查看APP的时候,如果你的应用有涉及到获取当前时间,那么你要注意了! 貌似从iOS8开始(因为手头没有iOS6,7设备),系统获取时间是以时区为准,而不是地区,那么在你手机设置里,通用-->日期与时间 你会看到如图界面. 这里系统默认是自动设置, 应该就是系统获取了你当前的坐标,判断你的坐标是在中国境内,所以时区自动设置为北京. 然而当你去了英国伦敦游玩呢?系统会获取你的坐标,定位为伦敦,那么你的时间