分类: Java
2014-06-13 20:24:16
原文地址:java web热部署 作者:xdzbb
开发和测试阶段
在myeclipse ----tomcat---jdk---java vm 添加以下代码
-noverify
-javaagent:D:\soft\jrebel\jrebel.jar-------jrebel.jar 所在目录
-Drebel.dirs=F:\test\webapp\WEB-INF\classes--------项目classes所在目录
-Drebel.spring_plugin=true
-Drebel.struts2-plugin=true
-Drebel.struts1-plugin=true
-Drebel.hibernate_plugin=true
-Xmx512M -Xms512M -XX:MaxPermSize=1024m
再启动tomcat的时,看到jrebel的打印信息就成功了。
或者再tomcat的bin/目录下的catalina.sh
echo "Using CATALINA_BASE: $CATALINA_BASE"
echo "Using CATALINA_HOME: $CATALINA_HOME"
echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
的上面添加 。如下
JAVA_OPTS="$JAVA_OPTS -noverify -javaagent:/home/httpd3/program/jrebel/jrebel.jar \
-Drebel.dirs=/home/httpd3/program/Believeus/ant-build/classes \
-Drebel.spring_plugin=true \
-Drebel.struts2-plugin=true \
-Drebel.struts1-plugin=true"
echo "Using CATALINA_BASE: $CATALINA_BASE"
echo "Using CATALINA_HOME: $CATALINA_HOME"
echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
经过测试 修改jsp ,java文件,新增加java文件,新增包(如果不是一个域名下的包不会热部署)
例如cn.believeus.xxxx 新建java文件在cn.believeus 开头的包下会热部署,如果新建java文件在
cn.baidu.xxx下就不会热部署。
配置文件,XML 和动态代理不会热部署
部署发布阶段
在tomcat的bin/目录下的catalina.sh
echo "Using CATALINA_BASE: $CATALINA_BASE"
echo "Using CATALINA_HOME: $CATALINA_HOME"
echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
的上面添加 。如下
JAVA_OPTS="$JAVA_OPTS -noverify -javaagent:/home/httpd3/program/jrebel/jrebel.jar \
-Drebel.dirs=/home/httpd3/program/Believeus/ant-build/classes \
-Drebel.spring_plugin=true \
-Drebel.struts2-plugin=true \
-Drebel.struts1-plugin=true"
这样就可以自动部署classes文件了
然后在ant添加命令,将jsp文件夹也拷贝到tomcat对应的webapps下面,这样jsp也可以热部署了。
解决热部署与一般部署同时进行导致系统cpu100%的问题
catalina.sh里面添加
JAVA_OPTS="$JAVA_OPTS -noverify -javaagent:/home/httpd3/program/jrebel/jrebel.jar "
项目src目录下添加rebel.xml文件,//借鉴jrebel官网
xmlns=""
xsi:schemaLocation="/alderaan/rebel-2_0.xsd">
这样很好的避免了热部署与ant deploy之间的冲突。