dubbo消费者启动报错com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method xxx

本文详细解析了Dubbo框架中出现的RPC调用异常,包括远程方法调用超时及参数类型转换错误的问题,并提供了排查和解决冲突jar包的具体步骤。

消费者报错信息:

Invocation of init method failed; nested exception is com.alibaba.dubbo.rpc.RpcException: 
Failed to invoke the method 方法名 in the service service类名. 
Tried 1 times of the providers [测试服务器ip地址:20880] (1/1) from the registry 测试服务器ip地址:2181 on the consumer 
172.19.145.65 using the dubbo version 2.8.3. Last error is: Invoke remote method timeout. 
method: 方法名, provider: dubbo://测试服务器ip地址:20880/service类名

request: Request [id=0, version=2.0.0, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=方法名, parameterTypes=[class java.lang.String], arguments=[005], attachments={path=service类名, appId=项目名, interface=service类名, version=0.0.0, timeout=50000}]], channel: /测试服务器ip地址:48006 -> /测试服务器ip地址:20880

消费者报错信息:

[10:37:00|WARN |(com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation)]=[ [DUBBO] Decode argument[1] failed: java.lang.String cannot be cast to java.util.SortedMap, dubbo version: 2.8.3, current host: 127.0.0.1]
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.SortedMap
    at de.javakaffee.kryoserializers.SynchronizedCollectionsSerializer$SynchronizedCollection$7.create(SynchronizedCollectionsSerializer.java:148)
    at de.javakaffee.kryoserializers.SynchronizedCollectionsSerializer.read(SynchronizedCollectionsSerializer.java:71)
    at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:761)
    at com.alibaba.dubbo.common.serialize.support.kryo.KryoObjectInput.readObject(KryoObjectInput.java:125)
    at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:117)
    at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:74)
    at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:140)
    at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:134)
    at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:95)
    at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:46)
    at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:134)
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
    at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
    at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
    at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    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)

进行jar包冲突排查解决后,问题消失,应该是jar包冲突了。

idea冲突解决办法:maven窗口中有show dependencies选项,点击后会打开项目的jar包依赖关系图,右键Actual size显示正常大小,有冲突的jar包会被红色虚线标注出来,点击需要排除的jar,右键Exclude或者shift+delete排除jar包

WARN ] [2025-09-16 15:16:00.481] dubbo.rpc.cluster.support.FailoverClusterInvoker-query-hbase-pool-9-[79] - [DUBBO] Although retry the method getSecurtyTickByTickLevel in the service com.htsc.mdc.ark.service.IMDTickHistoryDataService was successful by the provider 168.61.17.4:21880, but there have been failed providers [168.61.17.5:21880] (1/3) from the registry 168.63.65.196:2182 on the consumer 160.18.15.239 using the dubbo version 1.2.1. Last error is: Failed to invoke remote method: getSecurtyTickByTickLevel, provider: dubbo://168.61.17.5:21880/com.htsc.mdc.ark.service.IMDTickHistoryDataService?anyhost=true&application=zx-mdc-xxx&check=false&default.reference.filter=rpcinfocollect&default.service.filter=arkAccessLogFilter,arkAuthFilter,traceFilter,rpcinfocollect&default.telnet=arktel,show&dubbo=1.4.9&generic=false&interface=com.htsc.mdc.ark.service.IMDTickHistoryDataService&loadbalance=random&logger=log4j&methods=getSecurityTickByID,getSecurityTickByIDList,getSecurityTickByIDListAndRecordType,getSecurityTickByIDAndRecordType,getSecurtyTickByTickLevel,getSecurityTickByFields&owner=zx-mdc&payload=33554432&pid=18684&revision=1.29.5&serialization=kryo&side=consumer&timeout=15000&timestamp=1758006687499&weight=10, cause: com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote proxy method getSecurtyTickByTickLevel to registry://168.63.65.196:2182/com.alibaba.dubbo.registry.RegistryService?application=pt-mdc-ark&backup=168.63.65.197:2182,168.63.65.198:2182&dubbo=1.4.9&export=dubbo%3A%2F%2F168.61.17.5%3A21880%2Fcom.htsc.mdc.ark.service.IMDTickHistoryDataService%3Fanyhost%3Dtrue%26application%3Dpt-mdc-ark%26default.service.filter%3DarkAccessLogFilter%2CarkAuthFilter%2CtraceFilter%2Crpcinfocollect%26default.telnet%3Darktel%2Cshow%26dubbo%3D1.4.9%26generic%3Dfalse%26interface%3Dcom.htsc.mdc.ark.service.IMDTickHistoryDataService%26loadbalance%3Drandom%26logger%3Dslf4j%26methods%3DgetSecurityTickByID%2CgetSecurityTickByIDList%2CgetSecurityTickByIDListAndRecordType%2CgetSecurityTickByIDAndRecordType%2CgetSecurtyTickByTickLevel%2CgetSecurityTickByFields%26owner%3Dpt-mdc%26payload%3D33554432%26pid%3D12293%26serialization%3Dkryo%26side%3Dprovider%26timeout%3D9000%26timestamp%3D1757467828354%26weight%3D10&file=./dubbo-registry/dubbo-registry.properties&logger=slf4j&owner=pt-mdc&pid=12293&registry=zookeeper&subscribe=false&timeout=60000&timestamp=1757467828325, cause: Not found method "getSecurtyTickByTickLevel" in class com.htsc.mdc.ark.server.impl.MDTickHistoryDataServiceImpl. com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote proxy method getSecurtyTickByTickLevel to registry://168.63.65.196:2182/com.alibaba.dubbo.registry.RegistryService?application=pt-mdc-ark&backup=168.63.65.197:2182,168.63.65.198:2182&dubbo=1.4.9&export=dubbo%3A%2F%2F168.61.17.5%3A21880%2Fcom.htsc.mdc.ark.service.IMDTickHistoryDataService%3Fanyhost%3Dtrue%26application%3Dpt-mdc-ark%26default.service.filter%3DarkAccessLogFilter%2CarkAuthFilter%2CtraceFilter%2Crpcinfocollect%26default.telnet%3Darktel%2Cshow%26dubbo%3D1.4.9%26generic%3Dfalse%26interface%3Dcom.htsc.mdc.ark.service.IMDTickHistoryDataService%26loadbalance%3Drandom%26logger%3Dslf4j%26methods%3DgetSecurityTickByID%2CgetSecurityTickByIDList%2CgetSecurityTickByIDListAndRecordType%2CgetSecurityTickByIDAndRecordType%2CgetSecurtyTickByTickLevel%2CgetSecurityTickByFields%26owner%3Dpt-mdc%26payload%3D33554432%26pid%3D12293%26serialization%3Dkryo%26side%3Dprovider%26timeout%3D9000%26timestamp%3D1757467828354%26weight%3D10&file=./dubbo-registry/dubbo-registry.properties&logger=slf4j&owner=pt-mdc&pid=12293&registry=zookeeper&subscribe=false&timeout=60000&timestamp=1757467828325, cause: Not found method "getSecurtyTickByTickLevel" in class com.htsc.mdc.ark.server.impl.MDTickHistoryDataServiceImpl. at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:76) at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53) at com.alibaba.dubbo.rpc.filter.RPCTraceCollectFilter.provider(RPCTraceCollectFilter.java:329) at com.alibaba.dubbo.rpc.filter.RPCTraceCollectFilter.invoke(RPCTraceCollectFilter.java:407) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.htsc.trace.dubbo.TraceDubboFilter.provider(TraceDubboFilter.java:119) at com.htsc.trace.dubbo.TraceDubboFilter.invoke(TraceDubboFilter.java:94) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.htsc.mdc.ark.server.auth.ArkAuthFilter.doInvoke(ArkAuthFilter.java:136) at com.htsc.mdc.ark.server.auth.ArkAuthFilter.invoke(ArkAuthFilter.java:98) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.htsc.mdc.ark.server.filter.ArkAccessLogFilter.invoke(ArkAccessLogFilter.java:96) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.HtdubboTagProviderFilter.invoke(HtdubboTagProviderFilter.java:44) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:70) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:143) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:120) at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84) at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170) at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52) at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:92) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: com.alibaba.dubbo.common.bytecode.NoSuchMethodException: Not found method "getSecurtyTickByTickLevel" in class com.htsc.mdc.ark.server.impl.MDTickHistoryDataServiceImpl. at com.alibaba.dubbo.common.bytecode.Wrapper26.invokeMethod(Wrapper26.java) at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46) at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72) ... 38 more , dubbo version: 1.2.1, current host: 160.18.15.239
最新发布
09-17
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值