我工作的地方有一个应用程序,其中仍然使用手动构建,即手动将 servlet 类和 jsp 文件从 Dev 移动到 QA 并最终移动到 Prod。
这是此应用程序中使用的方法,由于某些奇怪的原因而无法更改。顺便说一句,这不是问题。
我们最近进行了手动构建,将 jsp 文件从 QA 转移到 PROD。
我们注意到 jsp 文件内容与更新的 jsp 不对应,但与部署之前服务器中存在的 jsp 文件具有相同的内容。
我们没有重新启动 tomcat,因为 jsp 文件在更新时会自动改变其内容。
如果我们考虑不同的时间标准,这个问题在部署 6 小时后仍然存在,这可能会导致一些延迟。
所以为了解决这个问题,我们必须单独进入每个 jsp 文件并输入一些内容保存它并删除这个更改并保存它。然后它就可以完美地工作了。
但最终前后的 jsp 文件内容从未改变,我们这样做只是为了更改修改日期。
如果我们从时间戳问题的角度考虑,这怎么可能呢,因为部署之前服务器中存在的旧 jsp 文件至少一个月前就已经存在了,而部署的文件肯定比这个要新。
为什么会发生这种情况?我们之前进行相同类型的部署时没有发生过这种情况。
我们如何才能防止将来再次发生此类事件?
答案1
我不知道为什么会发生这种情况,但你应该能够强制 Tomcat 重新编译所有 JSP,只需删除下面的所有内容work/Catalina/localhost
并重新启动 Tomcat 即可。Tomcat 检查 JSP 是否需要重新编译的频率也可以调整在web.xml
。