【问题标题】:Tomcat serves old files even after removing and copying new .war file即使在删除和复制新的 .war 文件后,Tomcat 也会提供旧文件
【发布时间】:2017-03-16 16:36:40
【问题描述】:

我有一个 maven 项目,打个招呼。在我的 /var/lib/tomcat8/webapps 文件夹中,我已将其 .war 文件放置为 hello.war。

现在我对一个 js 文件进行了一些更改,运行 mvn 包并将 target/hello.war 复制到 tomcat8/webapps 文件夹。 服务器仍然提供旧的 JS 文件。 我尝试过的事情: 1.尝试在私人窗口打开。 2. 删除tomcat8/work文件夹下的Catalina文件夹。 3.添加到context.xml

但它们都不起作用。还删除了 webapps 中的旧 hello.war 并再次复制,但问题仍然存在。

但是,当我尝试将其复制为 webapps 文件夹中的 hello1.war 时,服务器会提供新文件。 谁能指导我如何解决这个问题?

【问题讨论】:

    标签: java maven tomcat tomcat8


    【解决方案1】:

    清理并重建您的项目战争文件。

    从服务器中删除 hello 文件夹。然后重启服务器。

    有时 .js 从缓存中加载,试试 Ctrl + F5

    【讨论】:

    • 试过了,但是放置同名.war后,还是显示旧内容
    • 清理并重建您的项目战争文件。
    • 你删除了旧的hello文件夹,请交叉检查。
    • 是的,我已经删除了旧的 hello.war 并运行 mvn 包,然后将 target/hello.war 复制到 webapps 文件夹
    【解决方案2】:

    Tomcat 对此不承担任何责任。一些中间 Web 缓存正在执行此操作,或者您的浏览器本身正在缓存。

    【讨论】:

    • 我尝试清除浏览器缓存,并尝试在私人窗口中打开,但没有任何反应!
    • @SrajanSoni 所以这一定是我在回答中提到的另一种可能性。我没有说任何关于私人窗户的事情。我不知道你为什么要告诉我这些。
    【解决方案3】:

    尝试在tomcat管理器中从http://localhost:8080取消部署应用程序,然后从tomcat/bin关闭,最后将war复制到您的webapp文件夹并再次启动tomcat

    【讨论】:

      【解决方案4】:

      在某个临时位置解压缩war并检查解压缩的JS文件是否是您期望的文件。如果是,请通过删除以前版本的 war 以及从该 war 中解压缩的目录和文件来清理 tomcat webapps 目录。之后,将新的战争复制到您的 webapps 文件夹并启动服务器。

      另外一件事,如果您使用 eclipse 并使用外部 maven 构建,那么在重新构建项目后,在您的工作区刷新该项目,然后复制 war 文件。

      【讨论】:

      • 我解压后发现了新文件time) 生成正确的文件!!
      • @SrajanSoni 重新安装 tomcat 可能吗?
      【解决方案5】:

      我通常遵循的理想做法是:

      1. 删除临时文件夹
      2. 删除工作文件夹
      3. 删除 webapps/hello.war 文件。
      4. 删除 webapps/hello 文件夹

      【讨论】:

      • 只需添加,停止服务器并执行上述步骤,然后复制war文件并重新启动。
      【解决方案6】:

      在我的情况下,一个文件是陈旧的,无论我做什么更改,同一 jsp 页面上的另一个文件已成功刷新。
      重新启动/发布/清理 Tomcat 工作目录...在 Eclipse 中没有帮助。
      唯一能奏效的就是在 Firefox 中清理缓存
      我仍然不知道为什么第一个文件保存在缓存中,而另一个 - 没有。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多