开发者社区 > 云原生 > 正文

dubbo:annotation标签在消费者端无法实例化Controller

您好,我使用dubbo2.6.2版本时在服务端使用dubbo:annotation标签能够正常将服务注册到zookeeper。

但是在消费端使用dubbo:annotation标签扫描controller类所在包时,访问该controller中的方法一直404,改成使用dubbo:reference标签引用服务就可以了。请问这个问题是由什么原因造成的?

这是服务端的配置:

提问91.png

提问92.png

提问93.png

这是消费端的配置:

提问94.png

提问95.png

提问96.png

这是访问结果:

提问97.png

这是消费端启动时的SpringMVC日志:

信息: Initializing Spring FrameworkServlet 'dispatcherServlet' [INFO] Refreshing WebApplicationContext for namespace 'dispatcherServlet-servlet': startup date [Sun Jul 08 00:10:28 CST 2018]; root of context hierarchy [INFO] Loading XML bean definitions from class path resource [spring-servlet.xml] 00:10:28,752 INFO LoggerFactory:? - using logger: com.alibaba.dubbo.common.logger.log4j.Log4jLoggerAdapter 00:10:28,868 INFO ServiceAnnotationBeanPostProcessor:190 - [DUBBO] BeanNameGenerator bean can't be found in BeanFactory with name [org.springframework.context.annotation.internalConfigurationBeanNameGenerator], dubbo version: 2.6.2, current host: 192.168.110.2 00:10:28,869 INFO ServiceAnnotationBeanPostProcessor:192 - [DUBBO] BeanNameGenerator will be a instance of org.springframework.context.annotation.AnnotationBeanNameGenerator , it maybe a potential problem on bean name generation., dubbo version: 2.6.2, current host: 192.168.110.2 00:10:28,898 WARN ServiceAnnotationBeanPostProcessor:155 - [DUBBO] No Spring Bean annotating Dubbo's @Service was found under package[com.pinyougou.controller], dubbo version: 2.6.2, current host: 192.168.110.2 [INFO] JSR-330 'javax.inject.Inject' annotation found and supported for autowiring [INFO] Looking for @ControllerAdvice: WebApplicationContext for namespace 'dispatcherServlet-servlet': startup date [Sun Jul 08 00:10:28 CST 2018]; root of context hierarchy [INFO] Looking for @ControllerAdvice: WebApplicationContext for namespace 'dispatcherServlet-servlet': startup date [Sun Jul 08 00:10:28 CST 2018]; root of context hierarchy [INFO] Mapped URL path [/**] onto handler 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0' [INFO] FrameworkServlet 'dispatcherServlet': initialization completed in 996 ms

原提问者GitHub用户SkyDriveCN

展开
收起
大圣东游 2023-05-11 20:23:23 288 0
1 条回答
写回答
取消 提交回答
  • 你的reference标注的,貌似不是dubbo的reference吧?dubbo的reference依赖注入是在你的controller初始化的时候自动使用org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor在bean实例化的时候注入的。有兴趣可以看下源码。你的@Reference注解是jdk.narshron.internal.ir.annotation.Reference, dubbo表示自己手太短,够不到阿!

    原回答者GitHub用户chutian52

    2023-05-12 12:09:36
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Dubbo开源现状与2.7规划 立即下载
Dubbo分布式服务治理实战 立即下载
《Dubbo 3.0 前瞻》 立即下载