dubbo版本(dubbo版本和eclipse)

本篇文章给大家谈谈dubbo版本,以及dubbo版本和eclipse对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

dubbo从 2.4.5 升级到 2.7.8 注意事项

一、升级dubbo版本

二亏册、替换所有Spring版本

因为dubbo升级Spring版本也需要跟着升级这里升级为5.2.11.RELEASE

生成的spring依赖要统一不然会出错并桐

四、 全文替换 com.alibaba.dubbo 为org.apache.dubbo *

包括启动脚绝空坦本从

1、 com.alibaba.dubbo.container.Main 替换为 org.apache.dubbo.container.Main

2、dubbo 配置文件的schema

dubbo泛化调用 2.7.3版本升到2.7.6版本 泛化调用报null指针

报错如下;

org.apache.dubbo.rpc.RpcException: Failfast invoke providers dubbo://10.170.112.91:20772/com.fosun.health.open.api.PaymentChannelConfigService?anyhost=trueapplication=xxl-job-providercheck=falsecluster=failfastdeprecated=falsedubbo=2.0.2dynamic=truegeneric=truegroup=cashierinterface=com.fosun.health.open.api.PaymentChannelConfigServicelazy=falseloadbalance=roundrobinmethods=getPayTypesByChannelIdpid=18420qos.enable=falseregister.ip=10.170.112.91release=2.7.6remote.application=cashier-center-coreretries=0revision=1.0.0side=consumersticky=falsetimestamp=1609236320490version=1.0.0 RoundRobinLoadBalance select from all providers [org.apache.dubbo.registry.integration.RegistryDirectory$InvokerDelegate@6ad43d32] for service org.apache.dubbo.rpc.service.GenericService method $invoke on consumer 10.170.112.91 use dubbo version 2.7.3, but no luck to perform the invocation. Last error is: Failed to invoke remote method: $invoke, provider: dubbo://10.170.112.91:20772/com.fosun.health.open.api.PaymentChannelConfigService?anyhost=trueapplication=xxl-job-providercheck=falsecluster=failfastdeprecated=falsedubbo=2.0.2dynamic=truegeneric=truegroup=cashierinterface=com.fosun.health.open.api.PaymentChannelConfigServicelazy=falseloadbalance=roundrobinmethods=getPayTypesByChannelIdpid=18420qos.enable=falseregister.ip=10.170.112.91release=2.7.6remote.application=cashier-center-coreretries=0revision=1.0.0side=consumersticky=falsetimestamp=1609236320490version=1.0.0, cause: org.apache.dubbo.remoting.RemotingException: java.lang.NullPointerException

java.lang.NullPointerException

at org.apache.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:74)

at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:81)

at org.apache.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)

at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:81)

at org.apache.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:41)

at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:81)

at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:145)

at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:100)

at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:175)

at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51)

at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

at org.apache.dubbo.rpc.cluster.support.FailfastClusterInvoker.doInvoke(FailfastClusterInvoker.java:59)

at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:248)

at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:78)

at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:55)

at org.apache.dubbo.common.bytecode.proxy138.$invoke(proxy138.java)

at com.xxl.job.core.handler.impl.DubboJobHandler.execute(DubboJobHandler.java:73)

at com.xxl.job.core.thread.JobThread.run(JobThread.java:163)

根据报错提示找到该出源码:

是因为dubbo2.7.6版本 没有判断无参方法传null校验导致报空指针错误

[img]

关于升级 Dubbo 版本到 2.6.5 后启动失败的“坑”

Dubbo 从低版本升级到 2.6.5 版本后,启动失败,报错如下:

bfont color='red'上终极方案:使用 2.6.2 以下版本或者 2.7.0 以上版本的 dubbo ;/font/b

具体解决方式需要根据项目的情况解决,提供一些其他方案:

删除 web.xml 中如下的配置:

Spring Boot 工程没有特别好的解决方案,提供两个解决思路:

这个方案也没有绕过添加 web.xml 的命运,做法如下:

观察报错日志,报错位置很明显是 Spring 框架初始化时的报错,重点是: there is already a root application 。

这个错误抛出位置余汪返位于: Spring-web 包的 ContextLoader 类的 initWebApplicationContext 方法。

原因很明显, ContextLoader 被调用了至少两遍,第二遍报错导致项目初始化失败,其主要的“罪魁祸首”是 dubbo 包下面的 web-fragment.xml 。

Servlet 3.0 是随着 Java EE 6 规范发布的,主要新增特性:

支持 Servlet 3.0 规范的容器,在启动后会扫描工程的 jar 包,找到符合规范的 添加了相关注解的类 和 web-fragment.xml 然后跟 web.xml 的配置合并作为整个项目的初始化配置。

上述问题的发生原因很明显了:

这个是 Servlet 3.0 提供的一个属性,等同一个开关,设置为 true 则表示 web.xml 已经提供了全部的配置信息,不需要容器再去各个 jar 包找配置了陵罩,换句话就是:关闭 可插特性 ;

这个属性是 SpringServletContainerInitializer 注释里面提供的解决思路。这个属性可以理解为指定 web-fragment.xml 的加载顺序,和 ordering 标签的区别是, absolute-ordering 仅仅针对我们指定的 web-fragment.xml 做排序。

轻易升级一个基础框架不是一个好的做法竖饥,b升级基础框架还是应该关注下当前版本和目标升级版本,框架作者做了些什么事情,出现过什么BUG。/b

当前的 Spring Boot 的解决方案并不让人满意,毕竟 Spring Boot 的无Xml的感觉还是很爽的,为了这个升级引入了 web.xml 会有一点点不爽。

关于dubbo版本和dubbo版本和eclipse的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表