当我试图将WAR文件部署到tomcat时,我遇到了一个问题。当从tomcat执行自动解包过程时,正在修改解包文件的上次修改日期。解包web应用的日期。文件速度加快了12个小时,这导致了几个杂项错误。
我尝试通过jar -xvf手动解压,文件的最后修改日期保持不变。我还在本地的tomcat (与dev相同的时区)中测试。环境),上次修改日期未发生任何变化。
似乎是tomcat时区的问题,我可以在tomcat上进行设置来解决这个问题吗?非常感谢您的帮助。
环境: linux上的Tomcat6,在服务器和Tomcat中都设置了GMT-4时区设置了GMT+8时区的机器创建的WAR文件
发布于 2015-09-19 05:01:29
在我的示例中,应用程序在初始化应用程序时从Tomcat中设置默认时区。时区更改带来的差异与文件修改时间中的偏移量相匹配。
令我惊讶的是,应用程序中的任何代码都可以在解压之前运行,但Tomcat容器确实给了应用程序在解压所有文件之前运行初始化代码的机会。
查找出现TimeZone.setDefault()的情况,并尝试删除调用或将调用移至初始化序列的后面部分。
有用的线索:
这个JSP告诉我,无论环境设置如何,应用程序始终以特定时区运行:
<html>
<body>
<h2>Current Timezone</h2>
<% java.util.Date date = new java.util.Date();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("zzz"); %>
<%=sdf.format(date)%>
</body>
</html>在日志文件中,我可以看到时区更改的瞬间(四小时跳跃)。它发生在应用程序加载的时候。
注意:设置完成后,时区将保持设置状态,直到Tomcat重启。
Sep 18, 2015 2:34:26 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8443
Sep 18, 2015 2:34:26 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 285 ms
Sep 18, 2015 2:34:26 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Sep 18, 2015 2:34:26 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.24
Sep 18, 2015 2:34:26 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive myWebapp.war
Sep 18, 2015 6:34:30 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Sep 18, 2015 6:34:34 PM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: loaded (conf ok)
Sep 18, 2015 6:34:34 PM org.apache.catalina.core.ApplicationContext log
INFO: struts: []: Verifying ModuleConfig for this module
Sep 18, 2015 6:34:34 PM org.apache.catalina.core.ApplicationContext log
INFO: struts: []: Verification of ModuleConfig has been completed
Sep 18, 2015 6:34:34 PM org.apache.catalina.core.ApplicationContext log
INFO: struts: []: Verifying ModuleConfig for this modulehttps://stackoverflow.com/questions/7585478
复制相似问题