每次进行更改时都必须重新启动tomcat

时间:2010-12-06 22:49:11

标签: java tomcat

每次在java代码中进行小的更改时,有没有办法重新启动tomcat?

8 个答案:

答案 0 :(得分:35)

reloadable中的<Context>元素的context.xml属性设置为true

<Context reloadable="true">

然后Tomcat将监视/WEB-INF/classes/WEB-INF/lib中的更改并在适当时重新加载。

如果您使用的是IDE,则可以将其配置为服务器设置。以下是它在Eclipse中的样子:

alt text

答案 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