java - Tomcat 是否偶尔会自行重新部署 WAR?

标签 java tomcat servlets war

我有一个作为 WAR 文件部署到 Tomcat 6 服务器的 Web 应用程序。它将一些数据存储在应用程序本身的目录中。当部署新版本的应用程序时,这些文件会被覆盖,但备份它们并重新添加它们是微不足道的。

但是,我的一位同事声称 Tomcat 有时会自发地重新展开我的 WAR 文件,即使展开的版本已经存在,并清除这些文件。我以前从未见过这种行为。如果真的有必要,我可以想出一个解决方法,但这是实际发生的事情,是自发发生的还是在服务器重启时发生的?

最佳答案

只要你有,Tomcat 只会在不重启的情况下自动部署

<Host autoDeploy="true">

在您的 /conf/server.xml 中,您编辑扩展 WAR 中的资源之一。但是这个设置并不真正推荐用于生产环境,因为它可能会导致 memory leaks .这也是默认关闭的。

也就是说,我强烈建议将您正在谈论的数据放在 WAR 之外。如果它们应该是 webapp 的运行时类路径的一部分,只需将它们放在 Tomcat 外部的固定磁盘文件系统路径中,例如/var/webapp/config 并编辑 /conf/catalina.propertiesshared.loader 属性以指定该路径:

shared.loader = /var/webapp/config

这些资源将以通常的方式在类路径中可用。这样你就不需要备份和重新添加它,这很笨拙而且很容易出错。

关于java - Tomcat 是否偶尔会自行重新部署 WAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7770241/

相关文章:

Tomcat/IntelliJ 断开连接

java - Tomcat - 双向 SSL 作为服务器

postgresql - 如何为表单生成器配置动态数据库

eclipse - 如何让 Eclipse 识别 Java EE jar 文件以便 Servlet 可以编译?

java - 是否可以将 SSL 证书附加到代号一中的此 WebBrowser 组件?

java - 生产服务器中的 tomcat 超出了 GC 开销限制

java - 在 Eclipse 中调试时避免方面

java - Spring容器引入aspect后不注入(inject)依赖

servlets - 无法下载小文件,但可以下载大文件

javascript - 在脚本标记内使用导入的对象(从 servlet)