gpt4 book ai didi

java - 使用 Spring 的 jetty-maven-plugin 中出现莫名其妙的无法解析的 IncompleteClassChangeError

转载 作者:行者123 更新时间:2023-12-01 11:50:06 25 4
gpt4 key购买 nike

我正在解决 ReSTLet 应用程序问题,并认为建立一个包含要测试的应用程序精简版本的 Github 存储库会很棒。然而,事情从来没有那么容易......

存储库位于:https://github.com/morungos/restlet-spring-static-files

基本上,问题是每当我尝试使用 mvn jetty:run-war 运行它时(我实际上需要这样做来测试 ReSTLet 问题),我会得到以下回溯:

java.lang.IncompatibleClassChangeError: class org.springframework.cglib.core.DebuggingClassWriter has interface org.springframework.asm.ClassVisitor as super class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:415)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377)
at org.springframework.cglib.core.DefaultGeneratorStrategy.getClassVisitor(DefaultGeneratorStrategy.java:30)

有趣的是,原始应用程序 - 即使我让它使用完全相同的 pom.xml,对于相同的命令也没有显示相同的问题。两者似乎都可以使用 mvn jetty:run,但 ReSTLet 问题需要一个 war 文件来测试。

现在我已经看到了这个问题,它通常是 ASM/CGLIB 冲突,当我检查依赖关系时,Jetty 和 Spring 确实使用不同的 ASM 系统,但我知道在哪里或如何正确设置依赖关系以实现此目的工作。即使我可以,我也无法弄清楚为什么它可以在一个应用程序中工作,而不是在一个稍小的版本中工作(遗憾的是我还无法展示)。

对于如何解决这个问题有什么想法吗?我尝试向导致问题的 Jetty 依赖项添加排除项(jetty 注释),但 Jetty 严重失败,因此显然需要这样做。

最佳答案

我使用mvn dependency:tree查看了您的pom。您混合使用了 Spring 3.2 和 3.1 JAR。 Spring 3.2 JAR 正在由 ReSTLet 引入。

[INFO] +- org.restlet.jee:org.restlet:jar:2.3.1:compile
[INFO] +- org.restlet.jee:org.restlet.ext.servlet:jar:2.3.1:compile
[INFO] +- org.restlet.jee:org.restlet.ext.spring:jar:2.3.1:compile
[INFO] | +- cglib:cglib-nodep:jar:2.2:compile
[INFO] | +- commons-logging:commons-logging:jar:1.1.3:compile
[INFO] | +- org.springframework:spring-beans:jar:3.2.6.RELEASE:compile
[INFO] | +- org.springframework:spring-core:jar:3.2.6.RELEASE:compile
[INFO] | +- org.springframework:spring-expression:jar:3.2.6.RELEASE:compile
[INFO] | +- org.springframework:spring-web:jar:3.2.6.RELEASE:compile
[INFO] | | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] | \- org.springframework:spring-webmvc:jar:3.2.6.RELEASE:compile
[INFO] +- javax.servlet:javax.servlet-api:jar:3.0.1:compile
[INFO] +- org.springframework:spring-context:jar:3.1.4.RELEASE:runtime
[INFO] | +- org.springframework:spring-aop:jar:3.1.4.RELEASE:compile
[INFO] | \- org.springframework:spring-asm:jar:3.1.4.RELEASE:compile
[INFO] +- org.slf4j:slf4j-api:jar:1.7.7:compile
[INFO] +- org.slf4j:slf4j-jdk14:jar:1.7.7:compile
[INFO] \- junit:junit:jar:4.9:test
[INFO] \- org.hamcrest:hamcrest-core:jar:1.1:test

关于java - 使用 Spring 的 jetty-maven-plugin 中出现莫名其妙的无法解析的 IncompleteClassChangeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28865113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com