不重启tomcat服务器实现web工程热部署

做web开发的一般都会有这样的问题吧。就是需要把web工程发布到tomcat服务器下面,可以通过tomcat映射来解决,但我觉得还是有点不太好, 在修改完java类的时候有时会迟疑,这时便会想是不是自己写的代码还是不太对。今天从网上找到一个新的方法,这种方法可以动态的加载修改过 的.class文件,让其实重新加载到服务器下面。
     测试的环境为:
     myeclipse8.5
     jdk1.6
    
JavaRebel插件
     对于javaRebel看开源社区中的描述为:
      javaRebel (JRebel)是一个JVM的插件 (非开源),给Java带来了Ruby和PHP风格的动态重新装载类特性,JavaRebel允许一个应用程序(独立的或运行在应用服务器上的应用)重新装载在运行过程中(on the fly)发生的大多数类变化,包括增加或删除方法和域。

javarebel 可以使Java class文件重新加载速度更快,节省了开发时间,而且修改了配置文件和在class中加入任何的代码都不用重启服务器,完全支持Annotation reloading.(Annotation动态载入),当classes字节码文件重新载入的时,它会在触发寄存器监听,允许使用自定义的方法去处理。

      所以当修改过代码后就会触发监听然后修改完后重新加载,实现真正意义上的热部署!

      配置:

      在windows/preferences/MyEclipse/Servers/Tomcat/Tomcat 6.x/点击JDK后会出在右边出现一个Optional Java VM arguments文本框,然后在里面输入以下代码:

     -noverify  
     -javaagent:E:/src/jrebel-3.0-M1/jrebel.jar  
     -Drebel.dirs=E:\frameWork\strutsWork\SpringMVC2\WebRoot\WEB-INF\classes


     其中javaagent为jrebel.jar所放的目录,drebel.dirs为工程目录中.编译过后生成.class文件生成的目录。这样配置完成之后,点应用。重新启动tomcat服务器,后台会出现以下文字:

      JRebel 3.0-M1 (200910151623)
     (c) Copyright ZeroTurnaround, Ltd, 2007-2009. All rights reserved.

     A rough estimate: Over the last 1 days JRebel
     prevented the need for at least 3 redeploys/restarts.
     Using industry standard build and redeploy times,
     JRebel saved you between 0.1 and 0.2 hours.

     This product is licensed to  Java Hack Organization
     for unlimited number of developer seats on site.


JRebel: Directory 'E:\frameWork\strutsWork\SpringMVC2\WebRoot\WEB-INF\classes' will be monitored for class changes.//会监测类的变化


这样完成之后如果你修改了类就会出现这么一句话:

JRebel: Reloading class 'com.fhqihwcw.tag.HasPermission'.//这是我测试用的类

就是重新加载你的.class文件无须再去重新启动服务器。。。。。修改代码和新加方法都会进行重新部署!

你可能感兴趣的:(tomcat部署工程)