alibaba / spring-cloud-alibaba

Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.
https://sca.aliyun.com
Apache License 2.0
27.83k stars 8.31k forks source link

什么时候支持dubbo3.0 #2119

Closed warthur1214 closed 3 years ago

warthur1214 commented 3 years ago

目前的2021.1版本不支持dubbo3.0,请问什么时候支持dubbo3.0

版本:

spring-cloud-starter-dubbo: 2021.1
dubbo: 3.0.0
dubbo-spring-boot-starter: 3.0.0
dubbo-spring-boot-actuator: 3.0.0

dubbo扫描org.mybatis.spring.mapper.MapperFactoryBean时getFactoryMethodMetadata报空指针了, 感觉是和mybatis不兼容

    private boolean isAnnotatedReferenceBean(BeanDefinition beanDefinition) {
        if (beanDefinition instanceof AnnotatedBeanDefinition) {
            AnnotatedBeanDefinition annotatedBeanDefinition = (AnnotatedBeanDefinition) beanDefinition;
            String beanClassName = annotatedBeanDefinition.getFactoryMethodMetadata().getReturnTypeName();
            if (ReferenceBean.class.getName().equals(beanClassName)) {
                return true;
            }
        }
        return false;
    }

异常如下:

14:40:03.021 [main] ERROR o.s.b.SpringApplication:871 ERROR - Application run failed
java.lang.NullPointerException: null
    at org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.isAnnotatedReferenceBean(ReferenceAnnotationBeanPostProcessor.java:165) ~[dubbo-3.0.0.jar:3.0.0]
    at org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessBeanFactory(ReferenceAnnotationBeanPostProcessor.java:131) ~[dubbo-3.0.0.jar:3.0.0]
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:325) ~[spring-context-5.3.6.jar:5.3.6]
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:191) ~[spring-context-5.3.6.jar:5.3.6]
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746) ~[spring-context-5.3.6.jar:5.3.6]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) ~[spring-context-5.3.6.jar:5.3.6]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) ~[spring-boot-2.4.5.jar:2.4.5]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782) [spring-boot-2.4.5.jar:2.4.5]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774) [spring-boot-2.4.5.jar:2.4.5]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) [spring-boot-2.4.5.jar:2.4.5]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) [spring-boot-2.4.5.jar:2.4.5]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) [spring-boot-2.4.5.jar:2.4.5]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) [spring-boot-2.4.5.jar:2.4.5]
    at com.warthur.nacos.demo.MainApplication.main(MainApplication.java:18) [classes/:na]
14:40:03.024 [main] INFO  o.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor:304  INFO - class org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor was destroying!

debug信息: image

theonefx commented 3 years ago

目前同 dubbo3 的集成工作正在进行中,会分成两批发布:

最后,dubbo 直接扫描 mybatis 好像本来就不太合理吧?是不是改下包路径呢?

xiaofu1113 commented 3 years ago

我去,老版本没有这个问题呀,新版本我也有这个问题