gpt4 book ai didi

java-8 - Jetty 9.4 给出 ArrayIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 12:15:17 24 4
gpt4 key购买 nike

我正在尝试在 jetty 9.4 上部署我的 war 文件(分别使用 asm 5.1 和 6 尝试了 9.4.0 和 9.4.8)。我收到以下错误。我正在使用 java 1.8 进行开发

java.lang.RuntimeException: Error scanning entry org/aspectj/org/eclipse/jdt/internal/compiler/parser/UpdateParserFiles.class from jar file:///tmp/jetty-0.0.0.0-8080-xxxxx-service-8.0.0.0000-SNAPSHOT.war-_xxxx-8.0.0.0000-SNAPSHOT-any-4304648590162252598.dir/webapp/WEB-INF/lib/aspectjtools-1.8.13.jar
at org.eclipse.jetty.annotations.AnnotationParser.lambda$parseJar$0(AnnotationParser.java:883)
at java.util.TreeMap$ValueSpliterator.forEachRemaining(TreeMap.java:2893)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:875)
at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:839)
at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:161)
at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:468)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)
at java.lang.Thread.run(Thread.java:745)
Caused by:
java.lang.ArrayIndexOutOfBoundsException: 3379
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:171)
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:143)
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:418)
at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:933)
at org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry(AnnotationParser.java:918)
at org.eclipse.jetty.annotations.AnnotationParser.lambda$parseJar$0(AnnotationParser.java:879)
at java.util.TreeMap$ValueSpliterator.forEachRemaining(TreeMap.java:2893)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:875)
at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:839)
at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:161)
at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:468)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)
at java.lang.Thread.run(Thread.java:745)​

最佳答案

该错误的原因可能是服务器端类路径中的 ASM jar 太旧。

I know you said you have already tried newer versions, but have you checked all the jars on your server classpath for all possible instances of ASM classes?

如果您使用 ,注意你的服务器类路径,100% 确定你没有在多个 jar 中有那些 ASM 类!

此外,在 中的某些配置下,webapp 自己的 WEB-INF/lib/*.jar 可用于扫描该 webapp 中的类。这意味着不兼容的 WEB-INF/lib/asm*.jar 可能会给您带来问题。

  • 对于 Java 1.8 字节码和运行时,使用 ASM 5.1+
  • 对于 Java 9 字节码和运行时,使用 ASM 6+

另一个问题是,您可以在该 jar WEB-INF/lib/aspectjtools-1.8.13.jar 中包含类,这些类用于比您的运行时 JVM(或 ASM)更高的字节码) 可以处理。

如果您正在使用 JEP 238(多版本 JAR 规范)jar,那么这更常见,但我认为 aspectjtools-1.8.13.jar 不是其中之一(注意: 还没有真正下载那个 jar 并研究过它)

  • 查看 Eclipse jetty Issue #1797有关 JEP 238 的更多信息

关于java-8 - Jetty 9.4 给出 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48989243/

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