我有一个作为 WAR 文件部署到 Tomcat 6 服务器的 Web 应用程序。它将一些数据存储在应用程序本身的目录中。当部署新版本的应用程序时,这些文件会被覆盖,但备份它们并重新添加它们是微不足道的。
但是,我的一位同事声称 Tomcat 有时会自发地重新展开我的 WAR 文件,即使展开的版本已经存在,并清除这些文件。我以前从未见过这种行为。如果真的有必要,我可以想出一个解决方法,但这是实际发生的事情,是自发发生的还是在服务器重启时发生的?
最佳答案
只要你有,Tomcat 只会在不重启的情况下自动部署
<Host autoDeploy="true">
在您的 /conf/server.xml
中,您编辑扩展 WAR 中的资源之一。但是这个设置并不真正推荐用于生产环境,因为它可能会导致 memory leaks .这也是默认关闭的。
也就是说,我强烈建议将您正在谈论的数据放在 WAR 之外。如果它们应该是 webapp 的运行时类路径的一部分,只需将它们放在 Tomcat 外部的固定磁盘文件系统路径中,例如/var/webapp/config
并编辑 /conf/catalina.properties
的 shared.loader
属性以指定该路径:
shared.loader = /var/webapp/config
这些资源将以通常的方式在类路径中可用。这样你就不需要备份和重新添加它,这很笨拙而且很容易出错。
关于java - Tomcat 是否偶尔会自行重新部署 WAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7770241/