【转】Dubbo中 提供者发布私有库成功,消费者加入依赖成功。但是调用dubbo的方法时,找不到方法,异常java.lang.NoSuchMethodError
作者:互联网
遇到的坑 dubbo打包发布成功 API也成功点出方法来,http方式也能正常访问核心方法,但是API调用一直报找不到该方法的错误
解决 java.lang.NoSuchMethodError的问题
1、操作
项目重新打包后,程序就找不到对应的方法
Handler dispatch failed; nested exception is java.lang.NoSuchMethodError
3、原因(可能有多种原因,但下面是我这次导致错误的原因)
有2个不同版本的jar同时存在
注:项目的打包都是maven的package,结果发现这种方式不会把同名的另外版本的jar给clean掉,所以之后要先clean再package
4.解决方法
删除掉老版本的jar(本地maven库)
其间做过的事情:
1.怀疑传参 的时候是否需要引入标注 是否对应的相同类型 2.是否别处核心在启动中 3.差错提示中路径中多出一个大写“L” 例如:Lcom/citydelivery/deliveryService/DTO/Response;]由于自己java开发经验不多 看到这个提示怀疑自己是否不注意 在某个地方碰到键盘”L“ 全局搜索并没有找到有错的地方 然后接下来堆栈跟踪:java.lang.NoSuchMethodError:com.citydelivery.deliveryService.ExpressStockService.getWaitSignWaybillList(Ljava/lang/String;)
解决方法
Java使用这些字母在内部对方法签名进行编码.例如,“L”宣布以下“对象”,其由完整的类名称指定,后跟分号. “V”应该在括号前面,并描述一种返回类型“void”.
举个例子:
java.lang.NoSuchMethodError:
org.springframework.web.context.ContextLoader
.getCurrentWebApplicationContext()Lorg/springframework/web/context/WebApplicationContext;
它说,org.springframework.web.context.ContextLoader类中没有方法调用getCurrentWebApplicationContext,它不接受任何参数[由()表示),并返回一个名为“org / springframework / web / context / WebApplicationContext(由’;’关闭).
标签:lang,Dubbo,java,web,NoSuchMethodError,springframework,方法 来源: https://blog.csdn.net/zhuni_xingfu/article/details/104918286