java.lang.NoClassDefFoundError:部署到Google App Engine时无法初始化类net.sf.cglib.proxy.Enhancer。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.lang.NoClassDefFoundError:部署到Google App Engine时无法初始化类net.sf.cglib.proxy.Enhancer。相关的知识,希望对你有一定的参考价值。

我正在使用Spring框架和Google App Engine构建Web应用程序。在开发服务器中它可以工作,但是当部署到Google App Engine服务器时,我遇到了此错误

Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer

Initialization of bean failed; nested exception is java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super class

第一个错误表明我似乎想念cglib.jar中的net.sf.cglib.proxy.Enhancer,但是当我检查它是否已经存在时。我不明白第二条日志

我在类路径中使用了几个jar文件:

asm-4.0
asm-util-4.0
cglib-3.0
app engine sdk 1.7.6
spring framework 3.2.0

是什么问题?以及如何解决?

提前感谢

答案

看来Spring 3.2已经包含cglib和asm(请参阅发行说明的项目4.21:http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/spring-framework-reference/html/new-in-3.2.html)。它们在弹簧芯罐中。

您应该尝试从类路径中删除asm和cglib jar,并查看它们是否有所不同。

另一答案

如下所述在pom.xml文件中,从appium java-client中排除cglib依赖项。经过大量Google搜索,这为我解决了这个问题。

<dependency>
      <groupId>io.appium</groupId>
      <artifactId>java-client</artifactId>
      <version>7.3.0</version>
      <exclusions>
        <exclusion>
          <groupId>cglib</groupId>
          <artifactId>cglib</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

以上是关于java.lang.NoClassDefFoundError:部署到Google App Engine时无法初始化类net.sf.cglib.proxy.Enhancer。的主要内容,如果未能解决你的问题,请参考以下文章