apache / dubbo

The java implementation of Apache Dubbo. An RPC and microservice framework.
https://dubbo.apache.org/
Apache License 2.0
40.52k stars 26.43k forks source link

dubbo 多级调用 java.lang.IllegalArgumentException: Service not found #9039

Closed hou1263047562 closed 3 years ago

hou1263047562 commented 3 years ago

Environment

Steps to reproduce this issue

  1. 服务A --->调用服务B --->调用服务C
  2. 调用服务B报出异常

Pls. provide [GitHub address] to reproduce this issue.

Expected Result

What do you expected from the above steps?

正常调用, 没有异常

Actual Result

但是调用服务B 提供rest 服务 调用服务C 无异常

使用dubbo 调用 服务A --->调用服务B --->调用服务C 出现异常

其中Service not found:com.manager.service.TeamServicePermApi, findTeamSvcPermissionsV2 实际 findTeamSvcPermissionsV2方法应该是com.usercenter.service.api.PermTeamServiceApi

org.apache.dubbo.rpc.RpcException: Failed to invoke the method findTeamSvcPermissionsV2 in the service com.usercenter.service.api.PermTeamServiceApi. Tried 1 times of the providers [10.46.8.178:26600] (1/1) from the registry zookeeper:2181 on the consumer 10.46.11.129 using the dubbo version 2.7.8. Last error is: Failed to invoke remote method: findTeamSvcPermissionsV2, provider: dubbo://10.46.8.178:26600/com.usercenter.service.api.PermTeamServiceApi?anyhost=true&application=manager&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&init=false&interface=com.usercenter.service.api.PermTeamServiceApi&metadata-type=remote&methods=openService,findTeamSvcPermissions,findTeamSvcPermissionsV2,disableService,openingService,closeService,enableService,findTeamSvcPermission&pid=7&protocol=dubbo&qos.enable=false&qos.port=22222&register.ip=10.46.11.129&release=2.7.8&remote.application=usercennter&retries=0&revision=0.0.10-SNAPSHOT&service.filter=default,-validation,providerValidationFilter&side=consumer&sticky=false&timeout=10000&timestamp=1634202555626&version=1.0.0, cause: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.IllegalArgumentException: Service not found:com.manager.service.TeamServicePermApi, findTeamSvcPermissionsV2
java.lang.IllegalArgumentException: Service not found:com.manager.service.TeamServicePermApi, findTeamSvcPermissionsV2
        at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:134)
        at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:80)
        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.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:113)
        at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:260)
        at org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor.intercept(ClusterInterceptor.java:47)
        at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$InterceptorInvokerNode.invoke(AbstractCluster.java:92)
        at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:88)
        at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:74)
        at org.apache.dubbo.common.bytecode.proxy4.findTeamSvcPermissionsV2(proxy4.java)
        at com.manager.remote.impl.RemotePermTeamSvcApiServiceImpl.findPermTeamSvc(RemotePermTeamSvcApiServiceImpl.java:59)
        at com.manager.service.impl.TeamServicePermApiImpl.queryTeamServicePerm(TeamServicePermApiImpl.java:55)
        at org.apache.dubbo.common.bytecode.Wrapper25.invokeMethod(Wrapper25.java)
        at org.apache.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:47)
        at org.apache.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:84)
        at org.apache.dubbo.config.invoker.DelegateProviderMetaDataInvoker.invoke(DelegateProviderMetaDataInvoker.java:56)
        at org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56)
        at org.apache.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:52)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:89)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at org.apache.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:46)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at org.apache.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:77)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at com.trace.filter.ProviderFilter.invoke(ProviderFilter.java:29)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at com.wukong.starter.dubbo.filter.LoggingTracePvdFilter.invoke(LoggingTracePvdFilter.java:36)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at org.apache.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:129)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at org.apache.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:152)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at org.apache.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at org.apache.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:41)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:145)
        at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:100)
        at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:175)
        at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51)
        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)
Caused by: java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.IllegalArgumentException: Service not found:com.manager.service.TeamServicePermApi, findTeamSvcPermissionsV2
java.lang.IllegalArgumentException: Service not found:com.manager.service.TeamServicePermApi, findTeamSvcPermissionsV2
        at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:134)
        at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:80)
        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)
        at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915)
        at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:181)
        at org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker.invoke(AsyncToSyncInvoker.java:61)
        at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:78)
        at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:89)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:51)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at com.trace.filter.ConsumerFilter.invoke(ConsumerFilter.java:29)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at com.wukong.starter.dubbo.filter.LoggingTraceFilter.invoke(LoggingTraceFilter.java:32)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at org.apache.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:69)
        at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
        at org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56)
        at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:82)
        ... 41 common frames omitted
Caused by: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.IllegalArgumentException: Service not found:com.manager.service.TeamServicePermApi, findTeamSvcPermissionsV2
java.lang.IllegalArgumentException: Service not found:com.manager.service.TeamServicePermApi, findTeamSvcPermissionsV2
        at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:134)
        at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:80)
        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:212)
        at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:175)
        at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:163)
        at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleResponse(HeaderExchangeHandler.java:60)
        at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:181)
        at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51)
        at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)
        at org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:93)
        at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:179)
        ... 55 common frames omitted
CrazyHZM commented 3 years ago

Try it with the latest version, if you still have problems, you can reopen the issue