spring4.1 jrebel debug启动出错?

发布于 2021-11-22 11:10:25 字数 1688 浏览 792 评论 5

spring4.1 jrebel 集成时出现如下错误。
java.lang.VerifyError: (class: org/springframework/context/annotation/ConfigurationClassEnhancer$BeanMethodInterceptor, method: intercept signature: (Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Lorg/springframework/cglib/proxy/MethodProxy;)Ljava/lang/Object;) Incompatible argument to function
	at org.springframework.context.annotation.ConfigurationClassEnhancer.<clinit>(ConfigurationClassEnhancer.java:61)

错误显示 ConfigurationClassEnhancer$BeanMethodInterceptor 方法 intercept 有问题。

注意这个

method: intercept signature: (Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Lorg/springframework/cglib/proxy/MethodProxy;)Ljava/lang/Object;)
源码中的方法
@Override
        public Object intercept(Object enhancedConfigInstance, Method beanMethod, Object[] beanMethodArgs,MethodProxy cglibMethodProxy) throws Throwable {



发现与错误提示不符。为什么jrebel debug时,会找一个不存在的方法勒。

所以我将源代码提取出来,添加了如下方法

        public Object intercept(Object[] enhancedConfigInstance, Method[] beanMethod, Object[] beanMethodArgs,MethodProxy[] cglibMethodProxy) throws Throwable {
            return null;
        }



然后重新启动。就没问题了。

但引起这个问题的原因是什么,还是不知道。而且这个解决有点不妥。因为重新打包spring-context.jar了。而且看来也不是spring本身的问题。因为不用jrebel是不会错误的。

所以想来是不是jrebel中对spring的支持是不是有什么问题。又或者是我本地环境中的jrebel有问题。


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

把回忆走一遍 2021-11-28 01:50:28

楼上回答的对哦。

醉酒的小男人 2021-11-28 01:20:39

JRebel 5.6.3 (201409050929) 应该是最新的。难道还有其他的什么配置不成

终陌 2021-11-28 00:55:43

回复
你是怎么安装的,我用idea插件可以的,插件和jrebel文件有没有同时更新

妖妓 2021-11-27 23:57:47

回复
我也是 idea , 我只用junit 测试的话 new ConfigurationClassEnhancer() ,用jrebel debug 就会出错。普通 debug 就没问题。

眼眸 2021-11-24 01:17:48

请用新版的jrebel,5.5.0以上才支持spring4,最好用最新版的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文