2

我有个问题。我以 JPDA 模式启动 Tomcat,然后执行:

mvn tomcat:stop tomcat:undeploy war:inplace tomcat:inplace

之后,我从 Eclipse 连接到远程 Java 应用程序。一切正常,我可以更改一些代码和热插拔工作。

当我添加方法/更改参数时,我重新部署了应用程序:

mvn tomcat:stop tomcat:undeploy war:inplace tomcat:inplace

之后,当我再次重新连接到远程 java 应用程序时,只有当我更改任何文件(例如,放置空格或删除空格,保存)时,我才会收到代码无法换出的错误 - "Hot Code Replace Failed - add method not implemented"

问题是什么?

谢谢。

4

2 回答 2

0

JVM 仅支持对方法体的更改进行热交换。对于其他更改,例如更改参数或添加新方法,请考虑选择支持这些的 JRebel。

于 2012-09-06T23:03:29.663 回答
0

Spring Loaded JVM 代理应该工作得更好。一方面,它具有当前 JVM 热代码替换所缺乏的新参数和方法特性。我最近得到了这个设置并验证了现有类中的新方法按预期工作。

于 2016-05-06T17:34:30.703 回答