Java 在Eclipse中重新发布Tomcat服务器,无需完全重新启动

Java 在Eclipse中重新发布Tomcat服务器,无需完全重新启动,java,eclipse,tomcat,Java,Eclipse,Tomcat,在Eclipse中,我创建了一个在Tomcat7上运行的动态Web项目。如果修改并保存项目中的任何文件,eclipse会自动在Tomcat上重新发布项目(复制临时Tomcat目录中的文件),并重新启动Tomcat。这意味着我失去了所有会话 有没有一种方法可以告诉eclipse自动复制Tomcat目录中修改过的文件,但只有在手动重新启动Tomcat时才重新启动Tomcat 更好的做法是:在Tomcat directoy中复制任何修改过的文件,但只有在我修改了扩展名为*.java的文件时才重新启动T

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

有没有一种方法可以告诉eclipse自动复制Tomcat目录中修改过的文件,但只有在手动重新启动Tomcat时才重新启动Tomcat

更好的做法是:在Tomcat directoy中复制任何修改过的文件,但只有在我修改了扩展名为*.java的文件时才重新启动Tomcat


谢谢你的帮助

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

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

如果主机自动部署属性为
“true”
,则主机将根据需要尝试动态部署和更新web应用程序,例如,如果将新的
.WAR
放入appBase中。要使其工作,主机需要启用后台处理,这是默认配置

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

  • 部署复制到主机appBase中的
    .WAR
    文件
  • 部署分解的web应用程序,并将其复制到主机appBase中
  • 在提供新的.WAR时,重新部署已从.WAR部署的web应用程序。
    在这种情况下,将删除已分解的web应用程序,并再次展开.WAR。请注意,如果主机的配置使
    .WARs不会在解包WARs属性设置为“false”
    时被分解,则不会发生分解,在这种情况下,web应用程序将被简单地重新部署为压缩存档
  • 如果更新了
    /web-INF/web.xml
    文件(或定义为WatchedResource的任何其他资源),则重新部署web应用程序
  • 如果从中部署web应用程序的上下文描述符文件已更新,则重新部署web应用程序
  • 如果在
    $CATALINA_HOME/conf/[engineame]/[hostname]/
    目录中添加了上下文描述符文件(其文件名对应于先前部署的web应用程序的上下文路径),则重新部署web应用程序
  • 如果删除了web应用程序的文档库(docBase),则取消其部署。请注意,在Windows上,这假定已启用防锁定功能(请参阅上下文配置),否则无法删除正在运行的web应用程序的资源
请注意,也可以在中配置web应用程序重新加载 装入器,在这种情况下,将跟踪装入的类的更改

如需了解更多详细信息,请遵循以下步骤

相关链接:

您是否已在Tomcat web.xml配置文件中将开发参数设置为“1”?您可以尝试使用Pivotal Tc Server。它可以很好地处理热交换文件,甚至Java类。我是Tomcat,还有一些额外的功能。谢谢你的评论。由于我不想使用额外的软件,我对Baldurian的解决方案非常满意。这解决了我的问题,只需取消选中一个选项!谢谢BaldurianI我认为这不适用于eclipse服务器插件,而是手动将您的web项目部署为war。由于我没有将我的项目部署为war文件,并且Baldurian的解决方案已经在我的项目中运行,所以我没有测试您的解决方案。但我感谢你的发帖!