场景
Spring+mybatis3+ dubbo整合下,出现以下异常。在此问题上花费了两个多小时,终于查到原因。
org.springframework.beans.factory.BeanDefinitionStoreException:
Unexpected exception parsing XML document from class path resource [applicationContext.xml];
nested exception is java.lang.NoSuchMethodError: org.springframework.beans.MutablePropertyValues.add(Ljava/lang/String;Ljava/lang/Object;)
Lorg/springframework/beans/MutablePropertyValues;
1
2
3
4
5
原因分析
Mybatis使用了过低的Spring jar包导致此异常,进一步查看依赖树,发现在通过maven引入dubbo时,dubbo隐性依赖了低版本的Spring jar包。
解决方法
引入dubbo jar包时将依赖的spring jar包排除
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
</dependency>