如何在Eclipse和Tomcat的Debug过程中启用热部署
展开全部
如果你在Eclipse中进行Debug, 可以直接修改, 不必重启JVM就看到效果. 例如, 在blah()的下一行设置断点, 然后修改字符串blah为quz, 保存文件就可以继续运行新代码. 同样的方法可以使用在Tomcat Web应用的Debug中, 但是需要一些配置.
What’s the Catch? 有什么条件吗?
使用hot code replacement 有一些限制, 你不能使用JPDA HCR 去修改一个类的签名(例如增删成员变量), 或添加新类. 另外, 一些被称为 (“stack frames”) 的方法不能被修改, 包括 main 方法或任何通过反射调用的方法(any method invoked via reflection, that is, by using
java.lang.reflect.Method.invoke()).
商业的解决方案 JavaRebel
JavaRebel 是一个比JPDA HCR 强大得多的热部署工具.
使用JavaRebel 你可以增删方法, 增删Java类而不需要重启Tomcat, 不过这是商业软件 cost $1xx USD.
如何配置Eclipse使用热部署? 在Server里禁用项目的 “Auto Reloading”.
找到 “Servers” 模块(通过 Window -> Show View -> Servers打开).
双击里面的server 实例进入配置界面. 里面有两个标签页, Overview和Modules, 点击Modules,
找到相应的Project, 并点击Edit, 在“Auto reloading enabled”旁边取消勾选! 就这么简单.
What’s the Catch? 有什么条件吗?
使用hot code replacement 有一些限制, 你不能使用JPDA HCR 去修改一个类的签名(例如增删成员变量), 或添加新类. 另外, 一些被称为 (“stack frames”) 的方法不能被修改, 包括 main 方法或任何通过反射调用的方法(any method invoked via reflection, that is, by using
java.lang.reflect.Method.invoke()).
商业的解决方案 JavaRebel
JavaRebel 是一个比JPDA HCR 强大得多的热部署工具.
使用JavaRebel 你可以增删方法, 增删Java类而不需要重启Tomcat, 不过这是商业软件 cost $1xx USD.
如何配置Eclipse使用热部署? 在Server里禁用项目的 “Auto Reloading”.
找到 “Servers” 模块(通过 Window -> Show View -> Servers打开).
双击里面的server 实例进入配置界面. 里面有两个标签页, Overview和Modules, 点击Modules,
找到相应的Project, 并点击Edit, 在“Auto reloading enabled”旁边取消勾选! 就这么简单.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询