最新更改未反映在 servlet (tomcat) 中

新手上路,请多包涵

我正在做我安静的项目,现在我正在使用 tomcat 和 eclipse,直到现在都可以正常工作。

我在 22-1-2012 部署了战争(带有一些打印消息)它工作正常然后第二天我做了一些更改删除了一些消息并重新部署了文件……在我的 webapps 文件夹中它显示了“最后一次”的最新时间修改了我的战争文件..我做错了什么告诉我..

PS 反映了对同一项目的 JSP 页面的任何更改,但 servlet 类未更改

这是日志文件显示的内容 _SEVERE:Web 应用程序似乎已通过 java.util.Timer API 启动了名为 [MySQL Statement Cancellation Timer] 的 TimerThread,但无法停止它。为了防止内存泄漏,计时器(以及关联的线程)已被强制取消。 _

好吧,这是我的问题的总结,我希望我现在可以向您解释我再次执行以下步骤的问题

  1. 从 webapps 中删除了我的 webapp 目录
  2. 试图访问 servlet(它显示“资源不可用”)
  3. 在打印语句中进行一些更改以进行调试
  4. 从 eclipse 重新部署 WAR
  5. 再次访问该 servlet 时,它不是最新版本,它显示相同的旧消息。

现在告诉我是否有解决方案….提前致谢


在尝试了很多事情之后,我在部署 WAR 文件时观察到非 JSP servlet 类文件未包含在 WAR 中,当我在 WAR 中手动添加这些类文件时,所有更改都已更新。所以现在你能告诉我如何自动在 WAR 中部署这些..有什么问题?

原文由 Dhiraj Valechha 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 447
2 个回答

JSP 文件没有更新,因为它们是预编译的,即使它们可能从已更改的文件中提取信息,每个可能受影响的 JSP 文件都需要对其进行较小的更改,例如添加一个空格然后删除一个空格, 然后保存。

然后构建您的 WAR,然后应该会显示更新。今晚我遇到了同样的问题,其他答案都没有帮助。关键是,检查部署 WAR 的 Tomcat 目录中的文件日期。我注意到,即使我正在部署一个全新的清理过的 WAR,并删除所有文件夹,那里仍然有旧的缓存文件,可能是因为 Eclipse 保留它们以节省编译时间,认为它们没有任何变化。

希望这可以帮助

原文由 Captain Fantastic 发布,翻译遵循 CC BY-SA 3.0 许可协议

转到 Eclipse 中的服务器视图:

双击您的服务器。就我而言,它是 Tomcat。

应该会弹出一个 Tomcat Web 模块。单击最底部的“模块”选项卡(参见图 1)

选择您的项目。单击“删除”按钮。

图一: 在此处输入图像描述

现在您应该在 Tomcat 选项卡旁边看到一个星号。这意味着您需要保存更改。 Control+S 也是如此。

图二: 在此处输入图像描述

在 Project Explorer 中右键单击您的项目。转到 Maven -> 更新项目…

图 3: 在此处输入图像描述

现在这是重要的部分,确保选中“强制更新快照/版本”。检查那部分是至关重要的。然后单击确定。

图 4: 在此处输入图像描述

现在查看您的服务器视图。它应该看起来像这样,带有“重新启动”警告,告诉您它不同步。

图 5: 在此处输入图像描述

右键单击它并选择重新启动

图6:

在此处输入图像描述

让服务器重新启动。现在,如果您返回到服务器视图,您应该会看到它已同步。那正是你想要的。像这样:

图 7: 在此处输入图像描述

现在您应该能够右键单击您的项目并选择“Run As”->Run on Server,您应该会看到您的更改。

图8: 在此处输入图像描述

如果事情仍然没有更新,请返回并查看您的服务器视图,并确保它没有像上面的图 5 中那样显示重新启动的内容。如果是,请重新启动您的服务器,如图6。然后在浏览器上点击刷新。

原文由 Gene 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题