incubator-seata icon indicating copy to clipboard operation
incubator-seata copied to clipboard

不支持dubbo3 java.lang.NoSuchMethodError: 'org.apache.dubbo.rpc.RpcContext org.apache.dubbo.rpc.RpcContext.getServerContext()'

Open VirensCn opened this issue 2 years ago • 8 comments

  • [ ] I have searched the issues of this repository and believe that this is not a duplicate.

Ⅰ. Issue Description

Ⅱ. Describe what happened

If there is an exception, please attach the exception trace:

java.lang.NoSuchMethodError: 'org.apache.dubbo.rpc.RpcContext org.apache.dubbo.rpc.RpcContext.getServerContext()'
	at io.seata.integration.dubbo.ApacheDubboTransactionPropagationFilter.invoke(ApacheDubboTransactionPropagationFilter.java:95)
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:321)
	at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:193)
	at org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:57)
	at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:73)
	at org.apache.dubbo.metadata.MetadataServiceDubboProxy0.getMetadataInfo(MetadataServiceDubboProxy0.java)
	at org.apache.dubbo.registry.client.metadata.MetadataUtils.getRemoteMetadata(MetadataUtils.java:152)
	at org.apache.dubbo.registry.client.AbstractServiceDiscovery.getRemoteMetadata(AbstractServiceDiscovery.java:164)
	at org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener.doOnEvent(ServiceInstancesChangedListener.java:152)
	at org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener.onEvent(ServiceInstancesChangedListener.java:112)
	at org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.subscribeURLs(ServiceDiscoveryRegistry.java:312)
	at org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.doSubscribe(ServiceDiscoveryRegistry.java:216)
	at org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.subscribe(ServiceDiscoveryRegistry.java:184)
	at org.apache.dubbo.registry.ListenerRegistryWrapper.subscribe(ListenerRegistryWrapper.java:111)
	at org.apache.dubbo.registry.integration.DynamicDirectory.subscribe(DynamicDirectory.java:180)
	at org.apache.dubbo.registry.client.ServiceDiscoveryRegistryDirectory.subscribe(ServiceDiscoveryRegistryDirectory.java:107)
	at org.apache.dubbo.registry.integration.RegistryProtocol.doCreateInvoker(RegistryProtocol.java:570)
	at org.apache.dubbo.registry.integration.InterfaceCompatibleRegistryProtocol.getServiceDiscoveryInvoker(InterfaceCompatibleRegistryProtocol.java:65)
	at org.apache.dubbo.registry.client.migration.MigrationInvoker.refreshServiceDiscoveryInvoker(MigrationInvoker.java:428)
	at org.apache.dubbo.registry.client.migration.MigrationInvoker.migrateToApplicationFirstInvoker(MigrationInvoker.java:244)
	at org.apache.dubbo.registry.client.migration.MigrationRuleHandler.refreshInvoker(MigrationRuleHandler.java:73)
	at org.apache.dubbo.registry.client.migration.MigrationRuleHandler.doMigrate(MigrationRuleHandler.java:57)
	at org.apache.dubbo.registry.client.migration.MigrationRuleListener.onRefer(MigrationRuleListener.java:243)
	at org.apache.dubbo.registry.integration.RegistryProtocol.interceptInvoker(RegistryProtocol.java:535)
	at org.apache.dubbo.registry.integration.RegistryProtocol.doRefer(RegistryProtocol.java:505)
	at org.apache.dubbo.registry.integration.RegistryProtocol.refer(RegistryProtocol.java:487)
	at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.refer(ProtocolListenerWrapper.java:74)
	at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.refer(ProtocolFilterWrapper.java:71)
	at org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.refer(ProtocolSerializationWrapper.java:52)
	at org.apache.dubbo.rpc.Protocol$Adaptive.refer(Protocol$Adaptive.java)
	at org.apache.dubbo.config.ReferenceConfig.createInvokerForRemote(ReferenceConfig.java:494)
	at org.apache.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:397)
	at org.apache.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:285)
	at org.apache.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:219)

Ⅲ. Describe what you expected to happen

Ⅳ. How to reproduce it (as minimally and precisely as possible)

  1. xxx
  2. xxx
  3. xxx

Ⅴ. Anything else we need to know?

Ⅵ. Environment:

  • JDK version : 17
  • Seata version: 1.5.1
  • Dubbo : 3.0.8

VirensCn avatar Jun 10 '22 02:06 VirensCn

一样的问题。期待赶紧修复。

txlaijava avatar Jun 20 '22 12:06 txlaijava

项目中使用seata1.5.1 + dubbo3.0.8,通过dubbo调用接口时也会出现这个异常,把seata依赖去掉后就正常了

请问现在有什么解决方案吗?

lsiuf avatar Jul 13 '22 06:07 lsiuf

降级,使用1.4.2 版本。

VirensCn avatar Jul 13 '22 07:07 VirensCn

预计什么版本支持dubbo3呢?

lolashe avatar Jul 14 '22 06:07 lolashe

项目中使用seata1.5.1 + dubbo3.0.8,通过dubbo调用接口时也会出现这个异常,把seata依赖去掉后就正常了

请问现在有什么解决方案吗?

先使用类覆盖方式来替换掉seata中的这个ApacheDubboTransactionPropagationFilter类吧,一个比较简单粗暴的方式

funky-eyes avatar Jul 14 '22 15:07 funky-eyes

期待尽快修复 使用1.4.2版本遇到了(https://github.com/seata/seata/issues/3620) 这个localDateTime转化的问题,看到说1.5.*的版本解决这个问题 但是升级到1.5.1之后又遇到了这个问题

TristeLXH avatar Jul 20 '22 09:07 TristeLXH

seata1.5.2 + dubbo3.0.10 也出现这个问题

jeebeys avatar Aug 05 '22 11:08 jeebeys

小孩子才做选择题,两个我都要最新的!求大佬更新

simonally avatar Aug 09 '22 05:08 simonally

1.6.0-RC1 验证已解决

bobbyz007 avatar Dec 16 '22 08:12 bobbyz007