使用springboot 1.2.2发布的Spring安全oauth 2.0.7版本的NoSuchMethod错误

时间:2015-09-03 20:00:41

标签: spring oauth spring-security spring-boot

我使用的是springboot版本:

 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.2.RELEASE</version>
</parent

在我使用spring security oauth版本2.0.7版本的另一个项目中:

<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>2.0.7.RELEASE</version>

第二个oauth项目被添加为父项目的依赖项。 两个项目都成功构建。 但是在Application启动时会出现以下错误:

java.lang.NoSuchMethodError: org.springframework.beans.factory.support.DefaultListableBeanFactory.isAllowEagerClassLoading()Z
at org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.get(BeanTypeRegistry.java:147)
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.collectBeanNamesForType(OnBeanCondition.java:158)
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:147)

1 个答案:

答案 0 :(得分:0)

您正在尝试使用不符合Spring Boot要求的Spring Framework版本。

作为described in the documentation,Spring Boot 1.2.2需要Spring Framework 4.1.3或更高版本。 isAllowEagerClassLoading已添加到Spring Framework 4.1.2中的DefaultListableBeanFactory,因此您必须使用4.1.1或更早版本。

理想情况下,您应该删除Spring Framework依赖项版本的任何手动配置,并允许从spring-boot-starter-parent继承的依赖项管理获得控制权。如果不这样做,您应该手动指定兼容版本。