【问题标题】:Republish Tomcat Server in Eclipse without complete Restart在 Eclipse 中重新发布 Tomcat 服务器而不完全重新启动
【发布时间】:2016-07-18 13:22:27
【问题描述】:

在我的 Eclipse 中,我创建了一个动态 Web 项目,它在 Tomcat7 上运行。如果我修改并保存项目中的任何文件,eclipse 会自动在 Tomcat 上重新发布项目(将文件复制到临时 Tomcat 目录中)并重新启动 Tomcat。这意味着我失去了所有会话。

有没有办法告诉eclipse在手动重启Tomcat的时候自动复制Tomcat目录下修改过的文件而只重启Tomcat?

更好的是:复制 Tomcat 目录中的所有修改文件,但仅在我修改扩展名为 *.java 的文件时重新启动 Tomcat

感谢您的帮助!

【问题讨论】:

  • 您是否在Tomcat web.xml 配置文件中将开发参数设置为“1”?
  • 您可以尝试使用 Pivotal Tc Server。它可以很好地处理热交换文件,甚至是 Java 类。它只是带有一些附加功能的 Tomcat。
  • 感谢您的 cmets。由于我不想使用额外的软件,我对 Baldurian 的解决方案非常满意。

标签: java eclipse tomcat


【解决方案1】:

您应该在热部署模式下启动 Tomcat(仅在调试模式下支持)。 here 有一个很好的指南。

【讨论】:

  • 这解决了我取消选中一个选项的问题!谢谢博杜里安
【解决方案2】:

可以将 Web 应用程序部署到正在运行的 Tomcat 服务器。

如果主机 autoDeploy 属性为 "true",主机将尝试根据需要动态部署和更新 Web 应用程序,例如,如果将新的 .WAR 拖放到 appBase 中。为此,主机需要启用后台处理,这是默认配置。

autoDeploy 设置为“true”并且正在运行的 Tomcat 允许:

  • 部署.WAR 文件复制到主机appBase。
  • 部署已复制到主机 appBase 中的扩展 Web 应用程序。
  • Re-deployment of a web application which has already been deployed from a .WAR when the new .WAR is provided. 在这种情况下,分解的 Web 应用程序被删除,并且 .WAR 再次展开。请注意,如果主机配置为.WARs are not exploded with a unpackWARs attribute set to "false",则不会发生爆炸,在这种情况下,Web 应用程序将简单地重新部署为压缩存档。
  • 如果 /WEB-INF/web.xml 文件(或定义为 WatchedResource 的任何其他资源)更新,则重新部署 Web 应用程序。
  • 如果用于部署 Web 应用程序的上下文描述符文件已更新,则重新部署 Web 应用程序。
  • 如果向$CATALINA_HOME/conf/[enginename]/[hostname]/ 目录添加了上下文描述符文件(文件名与先前部署的 Web 应用程序的上下文路径相对应),则重新部署 Web 应用程序。
  • 如果 Web 应用程序的文档库 (docBase) 被删除,则取消其部署。请注意,在 Windows 上,这假定已启用防锁定功能(请参阅上下文配置),否则无法删除正在运行的 Web 应用程序的资源。

请注意,Web 应用程序重新加载也可以在 loader,在这种情况下,将跟踪加载的类的更改。

更多详情可以关注tutorial

相关链接:

【讨论】:

  • 我认为这不适用于 Eclipse 服务器插件,但手动将您的 Web 项目部署为战争。由于我没有将我的项目部署为战争文件并且 Baldurian 的解决方案已经为我工作,因此我没有测试您的解决方案。但我感谢你发帖!
猜你喜欢
  • 2018-04-07
  • 1970-01-01
  • 2011-03-08
  • 2017-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-08
  • 2011-04-21
相关资源
最近更新 更多