搭建spring+dubbo环境踩坑小记

spring+dubbo环境搭建网上汗牛充栋,但是实践过程中遇到种种麻烦,小记一篇,免得自己或者别人再次踩坑。 主要的问题是,项目需要引入哪些包,对有些版本过时的配置该如何修正,遇到异常如何处理(hello world应用代码极少,主要是配置问题)

参考文章Idea创建dubbo项目步骤和简单实例开发(dubo+zookeeper)

文章写的非常清楚,我们主要聚焦几个问题

1 dubboprovider 和 dubboconsumer的 pom配置

bash 复制代码
<!-- dubboprovider和dubbocomsumer 都需要引入,提供了dubbo注解,并会自动关联相应dubbo包,这里是2.6.2 -->
<dependency>
			<groupId>com.alibaba.boot</groupId>
			<artifactId>dubbo-spring-boot-starter</artifactId>
			<version>0.2.0</version>
</dependency>

<!-- dubboprovider和dubbocomsume spring web的启动器,不引入会遇到 4 那种问题 -->

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
</dependency>

只有dubboconsumer用到的包

bash 复制代码
<!-- Controller需要用到 @RequestMapping 等-->
<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
		</dependency>

2 dubboprovider 和 dubboconsumer的 application.properties文件配置

dubboprovider 相关配置

bash 复制代码
# apllication name
dubbo.application.name=dubboprovider

# register center
dubbo.registry.protocol=zookeeper
dubbo.registry.address=localhost:2181

dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

dubbo.monitor.protocol=registry
#开启包扫描,因代码有 @EnableDubbo,所以不需要
#dubbo.scan.base-packages=com.dubbolearn.dubboprovider.service.impl

dubboconsumer需要的配置

server.port=7070

bash 复制代码
server.port=7070

# apllication name
dubbo.application.name=dubboconsumer

# register center
dubbo.registry.protocol=zookeeper
dubbo.registry.address=localhost:2181

#dubbo.protocol.name=dubbo
#dubbo.protocol.port=20880

dubbo.monitor.protocol=registry

3 启动文件配置

bash 复制代码
package com.dubbolearn.consumer;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
// 注意现在的写法需要改成这样
@EnableDubbo    
public class DubboconsumerApplication {

	public static void main(String[] args) {
		SpringApplication.run(DubboconsumerApplication.class, args);
	}

}

4 Current Spring Boot Application is await...的问题

启动dubboprovider 、 dubboconsumer 时,如果没有引入spring-boot-starter-web就会遇到该问题

5 Whitelabel Error Page...的问题

通过浏览器访问 localhost:7070/hello

如果遇到

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Mon Jul 26 20:59:17 CST 2021

There was an unexpected error (type=Internal Server Error, status=500).

spring启动是成功的,但dubbo调用comsumer找不到provider

会在dubbocomsuer报错

检查 dubboprovider 的StudentServiceImpl的

@Service(interfaceClass = StudentService.class, version="1.0.0",timeout=15000)

和 dubboprovider的studentsController的

@Reference(interfaceClass = StudentService.class,version="1.0.0",check=false)

private StudentService studentService;

是否匹配一致

例如有没有这种错 https://www.cnblogs.com/wangchao928/p/15063380.html

相关推荐
独自破碎E3 分钟前
LeetCode 381: O(1) 时间插入、删除和获取随机元素 - 允许重复
java·算法·leetcode
程语有云5 分钟前
生产事故-Caffeine缓存误用之临下班的救赎
java·缓存·caffeine·阻塞·log·生产事故
Miraitowa_cheems27 分钟前
LeetCode算法日记 - Day 81: 最大子数组和
java·数据结构·算法·leetcode·决策树·职场和发展·深度优先
CodeCraft Studio33 分钟前
国产化Word处理控件Spire.Doc教程:用Java实现TXT文本与Word互转的完整教程
java·c#·word·spire.doc·word文档转换·txt转word·word转txt
徐子童40 分钟前
数据结构---优先级队列(堆)
java·数据结构·面试题·优先级队列··topk问题
滑水滑成滑头1 小时前
**标题:发散创新:智能交通系统的深度探究与实现**摘要:本文将详细
java·人工智能·python
siriuuus1 小时前
Maven 核心概念及生命周期
java·maven
闭着眼睛学算法1 小时前
【双机位A卷】华为OD笔试之【哈希表】双机位A-跳房子I【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解
java·c语言·c++·python·算法·华为od·散列表
孔明兴汉1 小时前
Cursor MCP 第一章-第一节-MCP协议简介.md
java·ai
信仰_2739932431 小时前
枚举类Enum反编译后效果
java·开发语言