每次在java代码中进行小的更改时,有没有办法重新启动tomcat?
答案 0 :(得分:35)
将reloadable
中的<Context>
元素的context.xml
属性设置为true
。
<Context reloadable="true">
然后Tomcat将监视/WEB-INF/classes
和/WEB-INF/lib
中的更改并在适当时重新加载。
如果您使用的是IDE,则可以将其配置为服务器设置。以下是它在Eclipse中的样子:
答案 1 :(得分:6)
结帐Jrebel。它可以自动检测代码更改,编译和部署战争,而无需重新启动服务器。它节省了大量时间并提高了工作效率。
答案 2 :(得分:4)
如果您需要修改类而不重新开始考虑{BergeC的答案之外的考虑Dynamic Code Evolution VM以避免permgen错误,那么就需要进行开发。
答案 3 :(得分:3)
即使Tomcat在启动时通常非常快,但它在很大程度上取决于您的应用程序,它可以多快地初始化自己。如果有一个该死的大型Spring应用程序上下文,具有各种集成和Hibernate映射,我非常确定启动Tomcat需要1.5秒,但启动应用程序需要1.5分钟。 JRebel在这里可以提供帮助。
答案 4 :(得分:2)
您不必重新启动Tomcat,只需重新部署该应用程序即可。有不同的方法(谷歌“tomcat部署”,你会得到很多指针),但最简单的是将新创建的war文件复制到Tomcat的webapps目录。 Tomcat将自动检测文件何时更新,并重新启动应用程序。
答案 5 :(得分:1)
您也可以尝试使用DCEVM。我已经写了一篇关于如何使用tomcat + eclipse进行设置的方法:Spring-mvc + Velocity + DCEVM
答案 6 :(得分:0)
是。您可以将tomcat设置为autodeploy,它将自动获取更改。它仍然重新部署,但速度要快得多。只需将“autodeploy =”true“”添加到server.xml配置文件中的Host条目即可。
这就是我工作的地方。当我们更新其中一个应用程序时,我们只需将旧的WAR文件放在旧的文件之上,然后Tomcat自动解压缩并部署它。
答案 7 :(得分:0)
我一直在使用Spring Loaded JVM代理来避免重启Tomcat或重新加载应用程序(这可能需要一段时间才能使用Spring网络应用程序)。我在Eclipse中配置我的Tomcat服务器以及#34;当资源发生变化时自动发布&#34;让变更几乎立即生效。
如果您使用Eclipse集成了Tomcat(WTP),您可以看到我在这里采取的步骤: https://stackoverflow.com/a/37064672/1034436