我部署了一个简单的hello world java应用程序,并且在新代码中我更改了servlet的输出以在循环中打印一些语句。
它在本地工作正常。
我上传了新的.war文件,停止了tomcat,删除了/webapps
中的旧.war文件和爆炸文件夹。
然后我复制了新的.war
文件,然后重新启动了tomcat。
它爆炸了文件夹,但不知何故代码已经过时了。
它可能以某种方式缓存.war文件吗?
我确实更改了server.xml并设置了autodeploy = false,但不确定它是否相关?
答案 0 :(得分:4)
删除工作目录并重启tomcat。
有点太简洁了。 Tomcat会在编译之前将jsp转换为servlet源,一些缓存发生在工作目录中,这可能是导致它发生的原因。
自从我使用Tomcat以来已经有一段时间了,但我相当确定结构类似于 work / host / engine / context ,所以你可能会在 work / localhost下找到你的东西/ Catalina / - 网络背景 -
答案 1 :(得分:1)
我确实更改了server.xml并设置了autodeploy = false,但不确定是否 是相关的?
OO。
来自文档
此标志值指示新的Web应用程序是否已放入 Tomcat运行时的appBase目录应该是自动的 部署。标志的值默认为true。请参阅自动应用 部署以获取更多信息。
我会从那里开始。