背景:
项目中dubbo当前使用版本是dubbo2.7.8,由于安全要求该版本存在问题:Apache Dubbo远程代码执行漏洞(CVE-2021-30181)需要升级到2.7.10及以上。
升级过程中遇到的问题:
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
14:41:07.235 [main] ERROR o.s.b.d.LoggingFailureAnalysisReporter - [report,40] -
***************************
APPLICATION FAILED TO START
***************************
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.apache.dubbo.configcenter.support.nacos.NacosDynamicConfiguration.getHttpAgent(NacosDynamicConfiguration.java:118)
The following method did not exist:
org.apache.dubbo.common.utils.ReflectUtils.makeAccessible(Ljava/lang/reflect/Field;)V
The method's class, org.apache.dubbo.common.utils.ReflectUtils, is available from the following locations:
jar:file:/home/weblogic/tpsys/applications/tomcat/webapps/web/WEB-INF/lib/dubbo-common-2.7.8.jar!/org/apache/dubbo/common/utils/ReflectUtils.class
jar:file:/home/weblogic/tpsys/applications/tomcat/webapps/web/WEB-INF/lib/dubbo-2.7.10.jar!/org/apache/dubbo/common/utils/ReflectUtils.class
The class hierarchy was loaded from the following locations:
org.apache.dubbo.common.utils.ReflectUtils: file:/home/weblogic/tpsys/applications//tomcat/webapps/web/WEB-INF/lib/dubbo-common-2.7.8.jar
Action:
Correct the classpath of your application so that it contains a single, compatible version of org.apache.dubbo.common.utils.ReflectUtils
问题原因分析:
jar包冲突,由于只升级了dubbo-2.7.10.jar
dubbo-registry-nacos还是2.7.8,导致错误,升级dubbo-registry-nacos版本为2.7.10后正常启动。记录一下。