dubbo服务调用产生AbstractMethodError与解决方法

dubbo服务调用产生AbstractMethodError与解决方法

因为开发新功能,在服务中新增接口,本地测试一切正常。随后将新的dubbo服务包发布到联调环境中,并调用新接口进行测试,但一直报java.lang.AbstractMethodError: XXXX 异常,随后搜索了AbstractMethodError含义及可能的产生原因。

下面是JDK文档对该异常的定义。

Thrown when an application tries to call an abstract method. Normally, this error is caught by the compiler; this error can only occur at run time if the definition of some class has incompatibly changed since the currently executing method was last compiled.

通过定义可知AbstractMethodError错误原因可能是因为接口文件中新增了接口,而对应的实现中却没有这个接口的实现,导致调用时产生AbstractMethodError异常。

这种异常发生在运行时,是由于实现与接口没有同时更新导致。随后在dubbo服务的lib目录下通过反编译工具查看接口实现的class文件,果然没有新增接口实现。于是重新编译项目并替换jar包,最后问题解决。

此外使用JDBC时候也会出现,例如。

It usually means that you are using an old version of an interface implementation which is missing a new interface method. For example java.sql.Connection interface got a new getSchema method in 1.7. If you have 1.6 JDBC driver and call Connection.getSchema you will get AbstractMethodError.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值