今天接到一个开发任务,需要在工程A的原dubbo接口上新增一个方法来支持业务需求,于是分分钟CTRL+C/V完成了开发任务,准备自测;自测方法是首先本地打新的二方SNAPSHOT包,然后启动应用,准备在PAAS平台的服务治理中调用下新接口,看下是否正常;

可是,问题来了!!!

现象1:

在服务治理里面找不到新增的方法;根据之前的经验,通过IDEA的Maven插件,对工程进行clean,然后重新启动;结果——还是找不到新增的方法,只有以前的改接口下的方法;

感觉是打包有问题,于是重新打了SNAPSHOT的包,重启应用,服务治理还是没有新增的方法;

思考了下,可能是ZK中的dubbo接口的方法列表信息并没有被更新,但实际上新方法所在的服务是启动了,于是启动另一个应用B,在B中引用应用A的新SNAPSHOT包,并在代码中通过dubug模式的Evaluate Expression(ALT+F8计算表达式)调用dubbo接口的新增的方法;神奇的现象发生了!

现象2:

新增的方法可以调用成功,并且结果正确的返回;但此时,控制台打印了一串异常,如下:

2022-05-25 17:01:34.761  WARN [0k6yje4qqs8uq8tt76jb4da9v8923bta] [vscheduler-task-executor-1] org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker 84:  [DUBBO] Although retry the method queryAppInfoByAppId in the service com.vi.internet.cp.resource.center.facade.game.GamePkgFacade was successful by the provider 172.27.88.88:20880, but there have been failed providers  (1/2) from the registry zookeeper.test.vi.xyz:2183 on the consumer 172.27.88.88 using the dubbo version 2.7.8.13-VI. Last error is: Failed to invoke remote method: queryAppInfoByAppId, provider: dubbo://10.184.3.79:20880/com.vi.internet.cp.resource.center.facade.game.GamePkgFacade?anyhost=true&app.env=test&app.loc=sz-sk&app.name=cp-resource-center&application=cp-activity-console&check=false&default=true&deprecated=false&dispatcher=message&dubbo=2.0.2&dynamic=true&generic=false&init=false&interface=com.vi.internet.cp.resource.center.facade.game.GamePkgFacade&methods=batchQueryInternalTestingPkgInfo,queryAppInfoByPkgName&pid=4784&register.ip=172.27.88.88&release=2.7.8.13-VI&remote.application=cp-resource-center&revision=2.9.5-SNAPSHOT&side=consumer&sticky=false&timeout=3000&timestamp=1653392802298&version=1.0.0, cause: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.IllegalArgumentException: Service not found:com.vi.internet.cp.resource.center.facade.game.GamePkgFacade, queryAppInfoByAppId
java.lang.IllegalArgumentException: Service not found:com.vi.internet.cp.resource.center.facade.game.GamePkgFacade, queryAppInfoByAppIdat org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:142)at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:83)at org.apache.dubbo.remoting.transport.DecodeHandler.decode(DecodeHandler.java:57)at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:44)at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)
, dubbo version: 2.7.8.13-VI, current host: 172.27.88.88org.apache.dubbo.rpc.RpcException: Failed to invoke remote method: queryAppInfoByAppId, provider: dubbo://10.184.3.79:20880/com.vi.internet.cp.resource.center.facade.game.GamePkgFacade?anyhost=true&app.env=test&app.loc=sz-sk&app.name=cp-resource-center&application=cp-activity-console&check=false&default=true&deprecated=false&dispatcher=message&dubbo=2.0.2&dynamic=true&generic=false&init=false&interface=com.vi.internet.cp.resource.center.facade.game.GamePkgFacade&methods=batchQueryInternalTestingPkgInfo,queryAppInfoByPkgName&pid=4784&register.ip=172.27.88.88&release=2.7.8.13-VI&remote.application=cp-resource-center&revision=2.9.5-SNAPSHOT&side=consumer&sticky=false&timeout=3000&timestamp=1653392802298&version=1.0.0, cause: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.IllegalArgumentException: Service not found:com.vi.internet.cp.resource.center.facade.game.GamePkgFacade, queryAppInfoByAppId
java.lang.IllegalArgumentException: Service not found:com.vi.internet.cp.resource.center.facade.game.GamePkgFacade, queryAppInfoByAppIdat org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:142)at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:83)at org.apache.dubbo.remoting.transport.DecodeHandler.decode(DecodeHandler.java:57)at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:44)at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)at org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker.invoke(AsyncToSyncInvoker.java:73) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:78) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:89) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at com.vi.framework.spring.rpc.dubbo.ConsumerFilter.invoke(ConsumerFilter.java:41) ~[vi-commons-2.3.5.20200904-v278-RELEASE.jar:na]at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:51) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:69) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:82) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:260) [dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor.intercept(ClusterInterceptor.java:47) [dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$InterceptorInvokerNode.invoke(AbstractCluster.java:92) [dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:88) [dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:74) [dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.common.bytecode.proxy8.queryAppInfoByAppId(proxy8.java) [dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at com.vi.internet.cpactivity.service.internaltestingplan.task.IterateRecord2SyncPackagePassedStatusAndNotifyTask.syncPackagePassedStatus(IterateRecord2SyncPackagePassedStatusAndNotifyTask.java:109) [cp-activity-console-service-1.2.4-SNAPSHOT.jar:na]at com.vi.internet.cpactivity.service.internaltestingplan.task.IterateRecord2SyncPackagePassedStatusAndNotifyTask.execute(IterateRecord2SyncPackagePassedStatusAndNotifyTask.java:65) [cp-activity-console-service-1.2.4-SNAPSHOT.jar:na]at com.vi.internet.vscheduler.client.internal.execute.TaskExecutor$2.run(TaskExecutor.java:395) [vscheduler-client-1.0.16.20210325-RELEASE.jar:na]at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_72]at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) [na:1.8.0_72]at java.util.concurrent.FutureTask.run(FutureTask.java) [na:1.8.0_72]at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_72]at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_72]at java.lang.Thread.run(Thread.java:745) [na:1.8.0_72]
Caused by: java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.IllegalArgumentException: Service not found:com.vi.internet.cp.resource.center.facade.game.GamePkgFacade, queryAppInfoByAppId
java.lang.IllegalArgumentException: Service not found:com.vi.internet.cp.resource.center.facade.game.GamePkgFacade, queryAppInfoByAppIdat org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:142)at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:83)at org.apache.dubbo.remoting.transport.DecodeHandler.decode(DecodeHandler.java:57)at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:44)at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) ~[na:1.8.0_72]at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915) ~[na:1.8.0_72]at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:181) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker.invoke(AsyncToSyncInvoker.java:61) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]... 26 common frames omitted
Caused by: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.IllegalArgumentException: Service not found:com.vi.internet.cp.resource.center.facade.game.GamePkgFacade, queryAppInfoByAppId
java.lang.IllegalArgumentException: Service not found:com.vi.internet.cp.resource.center.facade.game.GamePkgFacade, queryAppInfoByAppIdat org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:142)at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:83)at org.apache.dubbo.remoting.transport.DecodeHandler.decode(DecodeHandler.java:57)at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:44)at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)at org.apache.dubbo.remoting.exchange.support.DefaultFuture.doReceived(DefaultFuture.java:217) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:179) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:167) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleResponse(HeaderExchangeHandler.java:60) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:181) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:99) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:179) ~[dubbo-2.7.8.13-VI.jar:2.7.8.13-VI]... 27 common frames omitted

核心的异常信息是:

“ Caused by: java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.IllegalArgumentException: Service not found:xxx ”

网上搜了下原因,没有找到解决方案;但是根据之前的经验,IDEA本身存在一些问题,如父pom中的<dependency>中的<artifactId>或<version>标红,提示依赖未找到

原因是IDEA并没有去主动去拉对应的<dependency>,本地仓库也没有;

这种依赖问题的解决方案是:

将这一段<dependency>复制到子模块module的pom中,如XX-service的pom,等待稍许,就会惊喜的发现二方包依赖拉下来了,<dependency>不再标红

因此,推测可能是尽管本次新增dubbo接口的方法的服务已经打包并启动,但是IDEA没有把最新的二方包拉入,启动时还是用的上次的没有新方法的包;于是——

最终的解决方案:

去本地的.m2文件的repository中,手动删除当前包的所有version文件夹,然后重新在IDEA的父pom右键重新导包,然后重启服务,发现新方法可以正常被服务治理发现了,并且可以正常调用,dubbo异常“Service not found“不再出现,问题解决!

编码踩坑——dubbo异常“Service not found“相关推荐

  1. base64编码踩坑之身份证号模糊查询

    原文:base64编码踩坑之身份证号模糊查询 首先将我在项目中遇到的坑挖出来.在我们的项目中有这样的一个需求就是对于用户的身份证号在数据库中存储的时候不能是明文存储.鉴于这样的一个需求,很自然的我们就 ...

  2. mysql存储微信特殊字符_mysql保存微信昵称特殊字符--utf8mb4编码踩坑

    最近用datax做两个数据库之间的数据同步,由于两个数据库位于两台服务器上,一个数据库是生产库,一个数据库是本地库.本地库编码格式设置为utf8mb4,但做同步时微信名还是出现了乱码 Incorrec ...

  3. systemctl使用reload及踩坑

    systemctl使用reload及踩坑 1.demo.service文件 [Unit] Description=demo - demo server Documentation=http://git ...

  4. 一次关于 Dubbo 服务 IP 注册错误的踩坑经历

    大家好,我是鸭血粉丝,一位经常踩坑的程序员.今天我给大家说一下我踩的 Dubbo 的坑.所谓 bug 如风,常伴吾身,hasaki ~ 这不最近又遇到个问题,Dubbo 服务 IP 注册错误,好了,下 ...

  5. dubbo 单元测试_技术分享——一路踩坑构建Dubbo源码

    源码环境 随着目前对技术栈的求知欲,也开始入手Dubbo源码啦!!! 构建源码第一步: 必备开发环境:Java 1.5 以上的版本:Maven 2.2.1 或者以上的版本: 官网下载源代码 官网构建文 ...

  6. SpringBoot v2.2.6 踩的坑 --- dubbo.scan.base_packages

    SpringBoot版本2.2.6遇到的坑------Dubbo整合SpringBoot一直报错: No provider available for the service com.xxx.xxx ...

  7. java数字转大写 其他报异常_【踩坑系列】使用long类型处理金额,科学计数法导致金额转大写异常...

    python科学计算数据应用(第2版) 156.4元 (需用券) 去购买 > 1. 踩坑经历 上周,一个用户反馈他创建的某个销售单无法打开,但其余销售单都可以正常打开,当时查看了生产环境的ERR ...

  8. 一路踩坑构建Dubbo源码

    dubbo构建 源码环境 构建 快速启动 总结 源码环境 随着溪源目前对技术栈的求知欲,也开始入手Dubbo源码啦!!! 构建源码第一步: 必备开发环境:Java 1.5 以上的版本:Maven 2. ...

  9. Spark踩坑填坑-聚合函数-序列化异常

    Spark踩坑填坑-聚合函数-序列化异常 一.Spark聚合函数特殊场景 二.spark sql group by 三.Spark Caused by: java.io.NotSerializable ...

最新文章

  1. 专访刘刚:360手机卫士的性能监控与优化
  2. ISME: 北大吴晓磊课题组揭示合作演化新机制:“自私”驱动合作关系的建立?...
  3. linux动态库替换,不要使用 cp 替换正在使用中的Linux 动态库
  4. Code Splitting 代码分离
  5. mysql数据库唯一性_mysql表的字段怎么设置唯一性
  6. 5、Dcoker 容器数据卷用-v命令添加
  7. 史上最全搞怪WC标志(组图)--设计者太有才了。
  8. EXCEL表格转换成json数据工具
  9. 矩阵水平翻转java,通过翻转1的矩阵的行和列来确定是否可以到达给定二进制矩阵的算法...
  10. 【Spark】Spark调优 JVM调优
  11. python 文字处理系统_详解Python中的文本处理
  12. Hudson:一款持续构建工具
  13. 20191003每日一句
  14. ipsec和nat穿越
  15. 花西子背后的那个男人和他的五篇笔记
  16. 数字1的ASCII值是多少
  17. 华为路由器hilink怎么用_HUAWEI HiLink 两个华为路由器无线中继实测效果【图解】...
  18. centos7在线安装英伟达显卡驱动的方法
  19. ds1302c语言万年历,12864LCD+DS1302万年历设计proteus仿真
  20. et99php,坚石诚信ET99加密狗api aardio调用示范

热门文章

  1. 什么是Mixin?如何使用Mixin 定义mixin
  2. 【技术解析】模型量化压缩
  3. C# for Android
  4. 大连 oracle培训,大连哪里培训java专业(Java的数据类型)
  5. 出海产品设计之多语言设计指南
  6. 一个工科生的竹资源探索之旅
  7. 盒马CEO放话要将美团估值打掉一半,底气源自饿了么?
  8. 自媒体小风口:利用QQ公众空间引流吸粉
  9. 使用JavaScript写的操作系统和输入法程序
  10. flamingo的中文意思是什么,《flamingo什么意思》在线 - 闰看365影院