当前位置: 代码迷 >> Web前端 >> 在Velocity框架上使用JRebel 5.0
  详细解决方案

在Velocity框架上使用JRebel 5.0

热度:118   发布时间:2013-03-19 17:22:05.0
在Velocity框架下使用JRebel 5.0
在Velocity框架下使用JRebel 5.0

标签:教程

以下教你如何不用重启Tomcat服务器,修改的.vm文件和.java文件就可以生效。我的机器上只要按下Ctrl+S保存修改,进IE刷新页面,马上看到效果。

1. 把压缩包里的jrebel_5.0和links两个文件夹解压到eclipse目录下。

2. links目录下jrebel_5.0.link文件的内容修改成:
path=D:/eclipse3.7/jrebel_5.0
(根据自己实际路径,斜杠一定要/,不能是\)

3. 在Eclipse的Preferences里设置。要设置的是jar路径,下面一般都打勾就可以了。

4. 通过Preferences可以进JRebel Config Centre,这里在项目前面打勾。这里界面不太友好,点一下鼠标不一定能打上勾,试一试双击几次。

5. Tomcat设置页面右下角JRebel Integration下面的选项打勾。

6. Tomcat设置页面右上角Publishing,选Never publish automatically。

7. 这样设置完,下次启动Tomcat之后,改.java文件,保存,会出现提示,说不能热部署,问你Continue还是Terminate,选Continue。

这样.java文件的改动已经可以实时生效了。为了让.vm文件的改动也实时生效,还有一步:

8. 在Velocity的CreateTemplateFactory类的CreateTemplateFactory方法(根据你项目具体情况)添加以下代码:
velocityProperty = new Properties();
velocityEngine = new VelocityEngine();
velocityProperty.setProperty("input.encoding", CodeSet.UTFCODE);
velocityProperty.setProperty("output.encoding", CodeSet.UTFCODE);
velocityProperty.setProperty("resource.loader", "class");
velocityProperty
.setProperty("class.resource.loader.class",
"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
velocityEngine.init(velocityProperty);

附:已知JRebel不能热部署的情况:

* 替换了父类。

* 增加或删除了继承的接口。

* 较大范围改动,尤其是整个项目更新。