今天在使用dubbo2.5.3版本的時候,啟動項目的時候發現一個問題,tomcat啟動一直報錯
Caused by: java.lang.IllegalStateException: Context namespace element 'component-scan' and its parser class [org.springframework.context.annotation.ComponentScanBeanDefinitionParser] are only available on JDK 1.5 and higher仔細看來,我用的jdk1.8 ,編譯也是jdk1.8,仔細想想有可能式是jar包沖突,仔細排查是dubbo默認引用的spring版本太低了導致的,如圖
解決方案:
通過
maven的 <exclusions>標簽解決類包依賴沖突
<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>
這樣就去掉了隱式引用
再編譯啟動正常了
PS:網上我看有很多博文,是降低jdk或者升級spring版本,我沒有試驗,不知道可不可行