上下文的失败启动C.G.G.D.S.J.WebappContextWithReload



我需要一个问题,我不知道如何解决。您的帮助将不胜感激。

我刚刚将log4j2 jars(log4j-api2.10.0.jar,log4j-core-2.10.0.jar(添加到我的Web应用程序中,它开始在我的开发中遇到这个问题。后来我添加了log4j-web-2.10.0.jar并尝试过,它仍然失败了。

这是我的环境:

IDE: Eclipse Oxygen2
JDK: 1.8.0_162
Jetty (embedded in Eclipse): jetty-9.2.z-SNAPSHOT
OS: Win 10 (64bit)
Framework: GWT 2.8.2

堆栈跟踪(部分(:

[WARN] Failed startup of context c.g.g.d.s.j.WebAppContextWithReload@3a24f397{/,file:<project_path>/war/,STARTING}{<project_path>war}
MultiException[java.lang.RuntimeException: Error scanning entry META-INF/versions/9/org/apache/logging/log4j/util/ProcessIdUtil.class from jar file:<project_path>/war/WEB-INF/lib/log4j-api-2.10.0.jar, java.lang.RuntimeException: Error scanning entry META-INF/versions/9/org/apache/logging/log4j/util/StackLocator.class from jar file:<project_path>/war/WEB-INF/lib/log4j-api-2.10.0.jar, java.lang.RuntimeException: Error scanning entry module-info.class from jar file:<project_path>/war/WEB-INF/lib/log4j-api-2.10.0.jar]
    at org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations(AnnotationConfiguration.java:536)
    at org.eclipse.jetty.annotations.AnnotationConfiguration.configure(AnnotationConfiguration.java:447)
    at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:479)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1337)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
    .
    .
    .
Caused by: MultiException[java.lang.RuntimeException: Error scanning entry META-INF/versions/9/org/apache/logging/log4j/util/ProcessIdUtil.class from jar file:<project_path>/WEB-INF/lib/log4j-api-2.10.0.jar, java.lang.RuntimeException: Error scanning entry META-INF/versions/9/org/apache/logging/log4j/util/StackLocator.class from jar file:<project_path>/WEB-INF/lib/log4j-api-2.10.0.jar, java.lang.RuntimeException: Error scanning entry module-info.class from jar file:<project_path>/WEB-INF/lib/log4j-api-2.10.0.jar]
    at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:899)
    at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:831)
    at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
    at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:548)

从https://github.com/eclipse/jetty.project/issues/2192,(带有其他编辑(

这与您使用JEP-238多释放罐有关。

注意路径..

META-INF/versions/9/org/apache/logging/log4j/util/ProcessIdUtil.class

META-INF/versions/<java.specification.version>/*路径前缀告诉您,该路径下方的类是针对Java的特定版本的类别,替换了顶级JAR中的潜在命名类。

问题#1797是首次报告并修复的地方。

它是为...

修复的
  • Jetty -9.3.22.v20171030- 2017年10月30日
  • JETTY -9.4.8.V20171121- 2017年11月21日

由于Jetty 9.2.x是生命的终结,因此不会有支持码头9.2.x.x。

上的jep-238

您的选择是升级到上面列出的支持版本之一,或将Log4J版本降级到不使用JEP-238多释放JAR文件的版本。

也要注意,您使用的Log4J JEP-238多释放罐子文件也是Java 9 JPMS模块。

存在module-info.class表示。

在码头扫描期间忽略码头中的模块Info。

相关内容

  • 没有找到相关文章

最新更新