2012-12-18 619 views
8

我使用IntelliJ和Tomcat 6来运行Spring Java EE应用程序。我没有部署编译过的战争,而是选择使用爆炸战争部署,因此可以选择热切换一些类和JSP。但是,除了“更新类”和“更新类和资源”,IntelliJ还允许用户在更新操作中“重新部署”和“重新启动服务器”。这两种选择有什么区别?IntelliJ中的“Redeploy”和“Restart Server”有什么区别?

如果我在我的类中对方法签名进行更改,或者如果在SpringConfiguration.xml中进行更改,是否需要重新启动服务器,还是需要重新部署?我注意到,我无法简单地热切换其功能签名或与其关联的注释已被修改的类。

回答

12

重新启动服务器不正是它说,然后重新启动Tomcat服务器。您的战争将在服务器启动时重建并部署。如果您在热交换课程时遇到问题,这很有用。

Redeploy将重新部署整个.war(无需重新启动服务器),而不是尝试热交换已更改的类和其他资源。

参见: http://www.jetbrains.com/idea/webhelp/updating-a-running-java-ee-application.html

在回答你的第二个问题,重新部署应该是足够的。也就是说,它可能导致内存泄漏,并且通常只比完全重启稍快。

3

更新资源。所有更改的资源(即所有类以外的应用程序组件)都将被更新。

更新类和资源。所有更改的资源都将更新;改变的类将被重新编译。 在调试模式下,更新的类将被热插拔。在运行模式下,IntelliJ IDEA将只更新输出文件夹中已更改的类。这些类是否实际上将在正在运行的应用程序中重新加载,取决于正在使用的运行时的功能。

重新部署。该应用程序将被更新和重新部署。

重新启动服务器。服务器将重新启动。应用程序的更新版本将在服务器启动时部署。 对于打包的工件,可用的选项有:

热交换类。已更改的类将在运行时重新编译并重新加载。请注意,该选项仅适用于调试模式。 重新部署。整个应用程序将被重建和重新部署。 重新启动服务器。服务器将重新启动。应用程序将在服务器启动时重建并部署。

来源:http://www.jetbrains.com/idea/webhelp/run-debug-configuration-tomcat.html

相关问题