gpt4 book ai didi

java - 使用 tomcat 部署期间避免临时 404 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:09:35 29 4
gpt4 key购买 nike

每次我将 OpenGrok/dist/source.war 复制到 /var/tomcat/webapps/ 时,tomcat 都会生成带有 404 Not Found 的空白错误页面 在复制后的几秒钟内给我的用户带来错误。

HTTP/1.1 404 Not Found
Server: Apache-Coyote/1.1
Content-Length: 0
Date: Tue, 02 Apr 2013 19:00:14 GMT
Connection: close

这是 Not Acceptable 。我是不是通过手动将 .war 文件复制到 tomcat 目录中来正确部署,还是某种 OpenGrok 错误?我如何确保在部署过程中没有一个访问者会收到不当的 404

最佳答案

Tomcat 7 具有称为并行部署的功能。使用此功能,您的应用程序的多个实例可以在同一上下文路径下运行。

这篇博文很好地解释了它:http://www.javacodegeeks.com/2011/06/zero-downtime-deployment-and-rollback.html

总而言之,当您将 war 添加到您的 appBase 时,您需要手动对其进行版本控制。

cp foo##001.war apache-tomcat-7/webapps/
cp foo##002.war apache-tomcat-7/webapps/

您可能希望将 undeployOldVersionsautoDeploy 设置为 true,以便 tomcat 自动部署应用程序并在不再需要时删除旧版本。检查https://tomcat.apache.org/tomcat-7.0-doc/config/host.html有关 tomcat 配置的更多信息。

## 之后的 Version 必须是可比较的字符串,因此您可以使用例如来自您的 CI 系统的内部版本号,但您可能需要将其补零。

有几点需要注意:

  • 外部资源必须是可共享的,如果您正在使用数据库,但您的新版本需要新架构,您就会遇到问题。或者,如果您在特定端口上打开 TCP 监听器,它也不可共享。
  • 缓存,如果您的应用程序使用内部缓存,它们应该被写入并快速过期
  • 应用程序必须是不可部署的

关于java - 使用 tomcat 部署期间避免临时 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15772419/

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