在 Eclipse 中使用 Jetty 时获取非法参数 Exception/Runtime 异常

Getting an Illegal Argument Exception/Runtime Exception when using Jetty in Eclipse

我知道这可能很难回答,但我已经尝试了所有方法,但无法找到解决方案。我第一次尝试使用 Eclipse、Jetty 和 JSF 在 Java 中创建一个 Web 项目,在我引入 Java class 之前一切正常。我在 HTMl/XHTML 和 运行 中编写程序,但是当我添加 Java class - 即使 class 中没有任何内容,我也会得到以下异常:

java.lang.RuntimeException: Error scanning file C:\Users\****\eclipse-workspace\donationFinder\target\classes\com\testingClass\Test.class
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:783)
    at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:876)
    at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:165)
    at org.eclipse.jetty.annotations.AnnotationConfiguration.run(AnnotationConfiguration.java:552)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.run(QueuedThreadPool.java:589)
    at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: 
java.lang.IllegalArgumentException
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:986)
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:777)
    at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:876)
    at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:165)
    at org.eclipse.jetty.annotations.AnnotationConfiguration.run(AnnotationConfiguration.java:552)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.run(QueuedThreadPool.java:589)
    at java.base/java.lang.Thread.run(Thread.java:835)

有谁知道这可能是什么原因造成的?提前致谢。

您使用的 asm 版本对于您的 JVM 运行时来说太旧了。

对于 Jetty 9.4.x 如果您想扫描为 Java 8 到 Java 13 生成的字节码,您应该(至少)使用 asm-7.1.jar。 =15=]

如果要扫描为 Java 8 到 14 生成的字节码,请使用 asm-7.2.jar

如果要扫描为 Java 8 到 15 生成的字节码,请使用 asm-7.3.1.jar

有关详细信息,请参阅之前的回答。