spring-boot 集成dubbo框架第二集

之前也有写过boot集成dubbo的文章,当时也是解决了问题;但是今天在测试的时候发现这个项目里抛出的业务异常会被dubbo捕获并包装成运行时异常,导致我消费者这端接口返回给前端未知异常,其实错误原本的错误是业务异常,从而无法准确知道错误在哪里;

查找资料知道dubbo 包装错误是在ExceptionFilter类里面,同时同事也写了一个自己的filter,来做错误的统一处理,调试时发现,filter的调用顺序为ExceptionFilter------>MyExceptionFilter;由于在ExceptionFilter中已经将错误封装成了RunTimeException导致我们自定义的filter中无法判断到是运行时异常还是业务异常。

解决办法:设置filter调用顺序,使其不走ExceptionFilter,直接走我们自定义的;
即在配置文件中添加

spring.dubbo.provider.filter=xxxFilter,xxxExceptionFilter,-exception.

注意:-exception,表示使程序不走ExceptionFilter

配置以后启动程序测试发现,程序还是走了ExceptionFilter

这时候很匪夷所思了,我就在消费者端项目里面也加上这个,我们消费者项目是springMVC项目,是在xml文件中配置的这一段,如下:

<dubbo:consumer filter="xxxFilter,xxxxFilter,xxxxxxExceptionFilter,-exception" check="false"/>
注意:-exception,表示使程序不走ExceptionFilter

启动两个程序后,调试发现还是走了ExceptionFilter

这时候就猜测可能是因为我提供者这边的项目是boot的原因,可能这边的配置没有生效;

因为我们还有另一个项目也是提供者,然后那个项目是springMVC框架的,同样我也在那个项目的xml文件里加上一句:

spring.dubbo.provider.filter=xxxFilter,xxxExceptionFilter,-exception.

注意:-exception,表示使程序不走ExceptionFilter

然后启动这两个项目发现,程序报错正常了,不走ExceptionFilter这个类中的方法了;

找到原因:是因为boot这个项目中的配置没有生效;

这个时候联系到上篇文章,我的boot整合dubbo框架用的jar包依赖是

         <dependency>
                <groupId>io.dubbo.springboot</groupId>
                <artifactId>spring-boot-starter-dubbo</artifactId>
                <version>${dubbo.boot.version}</version>
            </dependency>

查看这个包里面的源码,发现并没有对自定义filter的配置做支持;也就是说我再配置文件中配置的参数根本就没生效,没有地方去解析;

查找网络发现dubbo集成框架有很多的方法,官方提供的jar包也有好几种,我都去尝试了下;
第一种使用的jar包:

 <dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>

网络上也有很多关这个jar包的集成方式,我也跟着试了下,中间出了很多的问题;
1.dubbo版本不兼容,导致找不到xx类;
2.需要引入额外的jar包,但是没有网上没有说明;
3.成功启动了但是,消费者这端进行消费时,注入的类为null;

总结:1.2两个问题很快就解决了,但是第三个问题找了很多方法都没用,不知道原因在哪里,反正没有解决;
猜测:可能是因为我的消费者用的是SpringMVC框架项目的原因,我发现网上用的boot框架的消费者是可以正常消费的,由于时间问题,就不去寻找原因了,毕竟,像我们一样一部分走boot一部分走springMVC的还是比较少的。(如果有人解决来的话,希望可以告知,谢谢)
然后考虑到,我们的环境是不能修改dubbo版本的,因为我们用的不是ali的dubbo,所以我只能放弃了这个方法

第二种使用的jar包:

<!-- https://mvnrepository.com/artifact/com.alibaba.boot/dubbo-spring-boot-starter -->
<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>0.2.1.RELEASE</version>
</dependency>

网上关于这个jar包的集成教程很少,可能是因为比较新,maven仓库可以看到这个jar包是2018-2019的,所以我找到的资料也有限,根据这个地址的教程:https://blog.csdn.net/belonghuang157405/article/details/84070689 尝试后发现:
1.dubbo版本兼容问题,找不到相关注解;
2.解决兼容问题后,发现能够正常启动了,但是无法注册bean到zookeeper上;

总结: 由此无法解决上述问题,又考虑到必须更改dubbo的版本,跟我们的环境不符合;

第三种方式的jar包:

            <dependency>
                <groupId>io.dubbo.springboot</groupId>
                <artifactId>spring-boot-starter-dubbo</artifactId>
            </dependency>

没错,这里用的还是原来的jar,但是前面说到原来的jar包不支持filter的配置,但是这里为什么还要用呢,这里也是同事解决的,他从github上将源码拉下来后发现跟原来jar包中的代码不一样,多了一些配置参数的支持,并且filter也支持,但是在maven仓库里,这个jar包只有一个版本,也就是作者并没有将最新的代码发布到仓库里,那么就只能自己动手,丰衣足食了,同事将最新的包打出来后发给我,然后我将该包修改了下groupId然后发不到我们私服的第三方仓库里,修改配置文件以及依赖,启动项目后发现一切正常,并且程序也没有走入默认的ExceptionFilter,而且自定义的filter也都正常运行。

如果帮到您了,请点个喜欢,谢谢!,有问题加QQ:1107156537

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355