java.lang.NoClassDefFoundError:org / springframework / beans / factory / DisposableBean

时间:2018-08-21 15:22:48

标签: java spring spring-bean

WLS 12.2.1.3发生错误:

Caused by: java.lang.NoClassDefFoundError: org/springframework/beans/factory/DisposableBean
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at weblogic.utils.classloaders.GenericClassLoader.defineClassInternal(GenericClassLoader.java:1113)
...
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.DisposableBean
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:1029)

org.springframework。*存在于weblogic.xml和weblogic-application.xml中的preferred-application-packages块中。

在pom.xml中

依赖层次结构是可以的

enter image description here

Spring libs也可以在战争中使用。

enter image description here

有什么想法我可以额外检查吗?

2 个答案:

答案 0 :(得分:0)

发生这种情况是因为jar冲突。

  1. 可能在战争之外设置了类路径,您可以从weblogic启动命令classpath变量中看到该类路径,并确保在类路径中不包含spring的其他版本
  2. 请运行mvn dependency:tree并确保您没有引入任何其他版本的spring依赖项(我认为您已经这样做了)

答案 1 :(得分:0)

dependencyManagement已添加到war pom.xml

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>