源码环境

随着目前对技术栈的求知欲,也开始入手Dubbo源码啦!!!
构建源码第一步:
必备开发环境:Java 1.5 以上的版本;Maven 2.2.1 或者以上的版本;
官网下载源代码
官网构建文档学习一下;

构建

上面part介绍了dubbo源码环境,下面将一步步踩坑构建源码。虽然上面附属了官方文档连接,此处再重复说一下下载步骤:

  • git下载
    命令git clone https://github.com/apache/dubbo.git;
  • maven 构建
    到这里开始踩坑了,噩梦的开始~
    官网文档里可以使用两种方式构建:是否跳过单元测试

毕竟是第一次构建源码,故选择了第一种方式:

  1. 构建时间长,需要构建单元测试;
  2. 可能会存在单测错误现象(构建过程可以直接忽略);

直奔主题,毫不意外构建失败,直接步入今天的主题:踩坑

遇到这种依赖冲突情况,提供一种暴力解决方法:将本地仓库删除相关jar包文件,重新下载依赖文件;
由于不跳过单测,构建过程略长,采用了第二种构建方式,如图

静静地等待构建。。。心里默默祈求成功吧(哈哈~)

  • idea编译
    命令:mvn idea:idea

继续等待编译完成,毫不意外又被摧残了一下,BUILD FAILURE构建失败;

心里想着再坚持一下,快要成功了~,继续想办法解决,看到关于本地仓库的问题,于是乎溪源在本地仓库中查找没有对应的Jar包依赖;
第一反应就是下载对应的Jar资源文件,在哪里下载呢???面向度娘吗??不不,对于这种资源包缺失问题,网上很少回答的。大家可以动脑思考一下,项目依赖文件来源于中央仓库,于是乎~阿里云仓库嘛;
将jar包下载完成以后,在本地仓库建立相应的文件夹;

引出一个拓展点:
平时日常开发配置maven时,需要在setting.xml引入阿里云仓库,一般我们百度时配置提供的基本是一种老版地址

alimavenaliyun mavenhttp://maven.aliyun.com/nexus/content/groups/public/central

在解决上面依赖问题时,发现阿里云仓库已经进行了地址更新:

官方配置指南参考:

于是,将本地maven配置setting.xml改成新的仓库地址:

alimavenaliyun mavenhttps://maven.aliyun.com/repository/public/central

以上踩坑似乎跟本地仓库有关,在这里分享出来,希望能够带给伙伴一种解决思路,遇到类似问题,不要着急,看错误日志,寻找解决方案。

解决完资源依赖问题,再次输入mvn idea:idea命令,终于迎来胜利的曙光,构建成功啦!

快速启动

经历一番折腾后,终于解决了问题,终于要准备开启dubbo的大门啦,一探究竟~
事实高兴的太早了,坑啊~,继续踩坑。

idea打开dubbo源码,进入dubbo-demo项目

按照正常步骤,将配置文件中zookeeper注册中心IP地址改成自己阿里云公网地址(根据自己情况修改);
满心欢喜启动项目~结果:

[11/08/20 08:36:35:376 CST] main  INFO imps.CuratorFrameworkImpl: Default schemaException in thread "main" java.lang.IllegalStateException: zookeeper not connectedat org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient.(CuratorZookeeperClient.java:83)at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperTransporter.createZookeeperClient(CuratorZookeeperTransporter.java:26)at org.apache.dubbo.remoting.zookeeper.support.AbstractZookeeperTransporter.connect(AbstractZookeeperTransporter.java:70)at org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter$Adaptive.connect(ZookeeperTransporter$Adaptive.java)at org.apache.dubbo.configcenter.support.zookeeper.ZookeeperDynamicConfiguration.(ZookeeperDynamicConfiguration.java:56)at org.apache.dubbo.configcenter.support.zookeeper.ZookeeperDynamicConfigurationFactory.createDynamicConfiguration(ZookeeperDynamicConfigurationFactory.java:37)at org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory.lambda$getDynamicConfiguration$0(AbstractDynamicConfigurationFactory.java:39)at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)at org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory.getDynamicConfiguration(AbstractDynamicConfigurationFactory.java:39)at org.apache.dubbo.common.config.configcenter.DynamicConfiguration.getDynamicConfiguration(DynamicConfiguration.java:224)at org.apache.dubbo.config.bootstrap.DubboBootstrap.prepareEnvironment(DubboBootstrap.java:1034)at org.apache.dubbo.config.bootstrap.DubboBootstrap.startConfigCenter(DubboBootstrap.java:623)

心里怒骂一声“此处省略三个字”!!!最终屈服于它,说服自己遇到问题不要慌,分析一波吧;面对第一次处理dubbo源码,心里也没有底啊。但是按照往常遇到问题的处理方式,就是看到上面的日志,找到第一个报错的类(为什么呢?跟过源码或者经验比较丰富的伙伴应该清楚,我们开发代码一般类似洋葱,一层套一层,故第一个报错的类,肯定是出问题的地方);于是乎,选中CuratorZookeeperClient.java:83此类作为突破目标;

看到了日志报错的地方,开始吧~撸起袖子就是干啊;

跟进源码我们发现了时间超时问题,我们距离成功解决问题又进了一步;故我们在配置文件中修改其连接时间:
官方文档:dubbo:registry
接下来就是修改dubbo源码中的配置文件:
将dubbo-provider.xmldubbo-consumer.xml中均添加超时时间:

解决完这些问题,心里已经不敢期望成功运行源代码了,心里担忧~
小心尝试分别运行provider、consumer主启动类;

心里一颗大石头终于放下来了,踩了一路的坑,终于成功运行demo了。

总结

从构建代码过程中,发现即使过程中遇到各种坑,希望大家能够静下来心,寻找有效日志,作为突破目标,一举攻破!

来源:https://blog.csdn.net/xuan_lu/article/details/107942808?utm_medium=distribute.pc_feed.none-task-blog-personrec_tag-4.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-personrec_tag-4.nonecase&request_id=5f3387eb2405af26f814ed65

dubbo 单元测试_技术分享——一路踩坑构建Dubbo源码相关推荐

  1. 一路踩坑构建Dubbo源码

    dubbo构建 源码环境 构建 快速启动 总结 源码环境 随着溪源目前对技术栈的求知欲,也开始入手Dubbo源码啦!!! 构建源码第一步: 必备开发环境:Java 1.5 以上的版本:Maven 2. ...

  2. 【华为云技术分享】深入浅出Sqoop之迁移过程源码分析

    本文从简单介绍了Sqoop作业执行时相关的类及方法.并将该过程与MapReduce的执行结合,分析数据如何从源端迁移到目的端. Sqoop作业执行过程 抛开MR的执行过程,Sqoop执行时用到的关键类 ...

  3. 分享Python采集99个VB源码,总有一款适合您

    分享Python采集99个VB源码,总有一款适合您 Python采集的99个VB源码下载链接:https://pan.baidu.com/s/1Ljs41rWn_WxvGqFWCkmGsA?pwd=1 ...

  4. 分享76个ASP其他类别源码,总有一款适合您

    分享76个ASP其他类别源码,总有一款适合您 76个ASP其他类别源码下载链接:百度网盘 请输入提取码 提取码:sukm Python采集代码下载链接:采集代码.zip - 蓝奏云 我的博客地址:亚丁 ...

  5. 分享55个ASP精品程序源码,总有一款适合您

    分享55个ASP精品程序源码,总有一款适合您 55个ASP精品程序源码下载链接:https://pan.baidu.com/s/1csXNiNvSesk-YiVXi-U8tA?pwd=hzx0  提取 ...

  6. 计算机毕业设计JavaIT技术交流和分享平台的设计与实现(源码+系统+mysql数据库+lw文档)

    计算机毕业设计JavaIT技术交流和分享平台的设计与实现(源码+系统+mysql数据库+lw文档) 计算机毕业设计JavaIT技术交流和分享平台的设计与实现(源码+系统+mysql数据库+lw文档) ...

  7. 分享99个ASP交友会员源码,总有一款适合您

    分享99个ASP交友会员源码,总有一款适合您 99个ASP交友会员源码下载链接:https://pan.baidu.com/s/1PWg8lIXoqEo-Jm21y_pzNA?pwd=rg00  提取 ...

  8. JAVA计算机毕业设计基于vue技术的汽车维修检测系统设计与实现源码+数据库+系统+lw文档

    JAVA计算机毕业设计基于vue技术的汽车维修检测系统设计与实现源码+数据库+系统+lw文档 JAVA计算机毕业设计基于vue技术的汽车维修检测系统设计与实现源码+数据库+系统+lw文档 本源码技术栈 ...

  9. 分享Python采集77个VB源码,总有一款适合您

    分享Python采集77个VB源码,总有一款适合您 Python采集的77个VB源码下载链接:https://pan.baidu.com/s/15jH2rxm5RXt7g9uIUFxYhA?pwd=2 ...

最新文章

  1. 解决报错: MobaXterm X11 proxy: Unsupported authorisation protocol
  2. 第十六节:语法总结(3)(C#6.0和C#7.0新语法)
  3. 常考数据结构与算法:每k个节点反转链表
  4. 径向基函数插值(2)一维数据的插值
  5. UML用例图间关系说明
  6. wxWidgets:将所有内容与 wxString 相互转换
  7. 记录一次dubbo项目实战
  8. FFmpeg 硬件加速方案概览 (下)
  9. kindEditor富文本编辑器的工具栏设置
  10. Educational Codeforces Round 112 (Rated for Div. 2)(A-D)
  11. 54. 二叉搜索树的第k大节点
  12. mysql库垂按照模块_前任都能看懂的分库分表方案
  13. Ubuntu18.04下QSqlDatabase: QMYSQL driver not loaded
  14. ubuntu搜狗输入法下载
  15. ENVI学习总结(十)——遥感图像监督分类
  16. 信息系统项目管理师必背核心考点(四十四)规划风险应对
  17. 如何看出一个程序员的技术能力和水平?
  18. 常见设计模式—抽象工厂模式
  19. xgboost.fit函数
  20. mac下查看隐藏文件夹

热门文章

  1. golang json 获取所有key_Golang —— JSON 大法
  2. java管理系统用怎么框架做_java 使用servlet做学生管理系统(无框架)
  3. python中文名的发件人邮件读取解析_如何使用python收取读取邮件?
  4. 如何让fragment每次都重新加载_每次都能正确判罚丨网球是如何电子化的
  5. 功能测试怎么学?阿里测试工程师教你4个步骤
  6. linux 内核round-robin scheduler代码,LINUX源代码阅读报告
  7. tablednd保存 php,jqgrid中使用tableDnd插件,jqgridtablednd插件
  8. liferay7.0 mysql_Liferay7 BPM门户开发之6: Activiti数据库换为mysql
  9. 32位大写 md5 php_编写生成32位大写和小写字符的md5的函数
  10. 用mendeley在word中插入文献_Mendeley在Word添加工具栏和插入和删除文献的方法 | 科研动力...