在 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
。
有关详细信息,请参阅之前的回答。
我知道这可能很难回答,但我已经尝试了所有方法,但无法找到解决方案。我第一次尝试使用 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
。
有关详细信息,请参阅之前的回答。