您好,我使用dubbo2.6.2版本时在服务端使用dubbo:annotation标签能够正常将服务注册到zookeeper。
但是在消费端使用dubbo:annotation标签扫描controller类所在包时,访问该controller中的方法一直404,改成使用dubbo:reference标签引用服务就可以了。请问这个问题是由什么原因造成的?
这是服务端的配置:
这是消费端的配置:
这是访问结果:
这是消费端启动时的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
你的reference标注的,貌似不是dubbo的reference吧?dubbo的reference依赖注入是在你的controller初始化的时候自动使用org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor在bean实例化的时候注入的。有兴趣可以看下源码。你的@Reference注解是jdk.narshron.internal.ir.annotation.Reference, dubbo表示自己手太短,够不到阿!
原回答者GitHub用户chutian52
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。