incubator-seata
incubator-seata copied to clipboard
不支持dubbo3 java.lang.NoSuchMethodError: 'org.apache.dubbo.rpc.RpcContext org.apache.dubbo.rpc.RpcContext.getServerContext()'
- [ ] 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)
- xxx
- xxx
- xxx
Ⅴ. Anything else we need to know?
Ⅵ. Environment:
- JDK version : 17
- Seata version: 1.5.1
- Dubbo : 3.0.8
一样的问题。期待赶紧修复。
项目中使用seata1.5.1 + dubbo3.0.8,通过dubbo调用接口时也会出现这个异常,把seata依赖去掉后就正常了
请问现在有什么解决方案吗?
降级,使用1.4.2 版本。
预计什么版本支持dubbo3呢?
项目中使用seata1.5.1 + dubbo3.0.8,通过dubbo调用接口时也会出现这个异常,把seata依赖去掉后就正常了
请问现在有什么解决方案吗?
先使用类覆盖方式来替换掉seata中的这个ApacheDubboTransactionPropagationFilter类吧,一个比较简单粗暴的方式
期待尽快修复 使用1.4.2版本遇到了(https://github.com/seata/seata/issues/3620) 这个localDateTime转化的问题,看到说1.5.*的版本解决这个问题 但是升级到1.5.1之后又遇到了这个问题
seata1.5.2 + dubbo3.0.10 也出现这个问题
小孩子才做选择题,两个我都要最新的!求大佬更新
1.6.0-RC1 验证已解决