gpt4 book ai didi

java - Tomcat 自动解压 WAR 文件更改了文件的最后修改时间

转载 作者:行者123 更新时间:2023-11-28 22:22:51 27 4
gpt4 key购买 nike

我在尝试将 WAR 文件部署到 tomcat 时遇到问题。在从 tomcat 自动解压过程中,解压文件的最后修改日期被修改。解压 Web 应用程序的日期。文件变得快了 12 小时,这导致了几个杂项错误。

我尝试通过 jar -xvf 手动解压,文件的最后修改日期保持不变。我还在本地 tomcat(与 dev.env. 相同时区)中进行了测试,上次修改日期没有任何变化。

看来是tomcat时区问题,我可以在tomcat上设置来解决这个问题吗?非常感谢您的帮助。

环境:Linux 上的 Tomcat 6,在服务器和 tomcat 中都设置了 GMT-4 时区设置了 GMT+8 时区的机器创建的 WAR 文件

最佳答案

在我的例子中,应用程序在初始化时从 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 module

关于java - Tomcat 自动解压 WAR 文件更改了文件的最后修改时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585478/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com