spring-boot整合dubbo,调用方启动报错

发布于 2022-09-07 20:38:48 字数 2656 浏览 13 评论 0

新手初学Dubbo,在整合Spring-boot做Demo时候,出现这样的问题。
服务提供者可以正常启动,调用方启动失败。多方尝试不得其解,无法解决。往过来人给指出问题所在。
下面放出代码

报错内容
2018-08-05 19:02:26.974  INFO 10060 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
Disconnected from the target VM, address: '127.0.0.1:1956', transport: 'socket'
2018-08-05 19:02:27.052 ERROR 10060 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Field helloService in cn.mrthree.dubbo.HelloController required a bean of type 'cn.mrthree.dubbo.HelloService' that could not be found.


Action:

Consider defining a bean of type 'cn.mrthree.dubbo.HelloService' in your configuration.
提供方ServiceImpl
import org.springframework.stereotype.Service;
@Service("helloService")
public class HelloServiceImpl implements HelloService {
    @Override
    public String sayHello(String name) {
        return "Hello " + (name == null ? "World" : name);
    }
}
提供方配置
srping:
  dubbo:
    application: #应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
      name: hello-service
    registry: #注册中心配置,用于配置连接注册中心相关信息。
      address: zookeeper://192.168.1.102:2181
    protocol:  #协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
      name: dubbo
      port: 20880
    service:
      interface: cn.mrthree.dubbo.HelloService
      ref: helloService
server:
  port: 8880
调用方Controller
package cn.mrthree.dubbo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
    @Autowired
    private HelloService helloService;
    @GetMapping("hello")
    public String hello(@RequestParam(value="name", required = false) String name){
        return helloService.sayHello(name);
    }
}
调用方配置
srping:
  dubbo:
    application: #应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
      name: hello-consumer
    registry: #注册中心配置,用于配置连接注册中心相关信息。
      address: zookeeper://192.168.1.102:2181
    base-package: cn.mrthree.dubbo
    reference:
      id: helloService
      interface: cn.mrthree.dubbo.HelloService
server:
  port: 8881
  servlet:
    context-path: /dubbo-consumer

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼趣 2022-09-14 20:38:48

报错提示的很清楚了

Consider defining a bean of type 'cn.mrthree.dubbo.HelloService' in your configuration.

个人认为是没有注入成功 可能是主程序配置未扫描到注解? 可以考虑使用dubbo的@Service注解和spring的注解结合 springboot本就是为了简化配置 为什么还用那么多配置呢?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文