编程语言
首页 > 编程语言> > 【转】Dubbo中 提供者发布私有库成功,消费者加入依赖成功。但是调用dubbo的方法时,找不到方法,异常java.lang.NoSuchMethodError

【转】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