【问题标题】:Bytecode Scanning error on META-INF/versions/9/* and Elasticsearch 6.2.2+ with Jetty 9.2META-INF/versions/9/* 和 Elasticsearch 6.2.2+ 与 Jetty 9.2 上的字节码扫描错误
【发布时间】:2018-06-20 20:29:35
【问题描述】:

使用最新版本的 Elasticsearch(6.1.1 以上)在 Superdev 模式下运行 GWT 应用程序会产生以下错误(见下文)。 很明显,这个问题与 Jetty 的过时版本有关。 有谁知道如何在 GWT 中替换 Jetty 或更改 IntelliJ 中的配置以使用不同的服务器?在我看来,GWT 文档中的说明写得不好。当然,理想情况下,我希望有一种方法可以直接在 GWT 中更改 Jetty,以便所有项目都可以使用更新后的版本,而不是为每个项目配置自己的服务器。

2018-06-20 16:17:13.923:INFO:oejs.Server:main: jetty-9.2.z-SNAPSHOT
Starting Jetty on port 8888
   [WARN] Failed startup of context c.g.g.d.s.j.WebAppContextWithReload@39f6694a{/,file:/Users/../Library/Caches/IntelliJIdea2018.1/gwt/....86a74491/....92536ba7/run/www/,STARTING}{/Users/../Library/Caches/IntelliJIdea2018.1/gwt/....86a74491/....92536ba7/run/www}
MultiException[java.lang.RuntimeException: Error scanning entry META-INF/versions/9/org/elasticsearch/core/internal/io/Streams.class from jar file:/Users/../Library/Caches/IntelliJIdea2018.1/gwt/.86a74491/.92536ba7/run/www/WEB-INF/lib/elasticsearch-core-6.3.0.jar, java.lang.RuntimeException: Error scanning entry META-INF/versions/9/org/elasticsearch/monitor/jvm/JvmPid.class from jar file:/Users/../Library/Caches/IntelliJIdea2018.1/gwt/...86a74491/.92536ba7/run/www/WEB-INF/lib/elasticsearch-6.3.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)

【问题讨论】:

    标签: java elasticsearch jetty multi-release-jar


    【解决方案1】:

    你的类路径中有一个JEP238 MultiRelease Jar File

    META-INF/versions/9/ 前缀条目证明。

    JEP238 是 Java 9 引入的一个概念。

    直到 Jetty 9.4.9.v20180320(2018 年 3 月)才引入 Jetty 在字节码扫描期间处理 JEP238 MultiRelease JAR 文件的支持。

    如果您需要继续使用 Jetty 9.2.x,那么您将不得不不使用 JEP238 MultiRelease JAR 文件。

    如果您必须使用 JEP238 MultiRelease JAR 文件,那么您必须至少升级到 Jetty 9.4.9.v20180320。

    【讨论】:

    • 虽然很高兴知道为什么会这样,但问题是:有谁知道如何在 GWT 中替换 Jetty 或更改 IntelliJ 中的配置以使用不同的服务器?我在 GWT 用户组上得到了这个问题的答案,很快就会在这里更新帖子。
    • @user3302076 > “...很快就会在这里更新帖子。”我知道这是一篇旧帖子,但我在尝试更新我们的旧应用程序时遇到了同样的问题。您能否发布或参考上述解决方案?
    猜你喜欢
    • 2019-01-30
    • 2021-01-02
    • 1970-01-01
    • 2021-08-18
    • 2020-06-21
    • 2014-05-13
    • 1970-01-01
    • 2022-07-18
    • 2016-12-01
    相关资源
    最近更新 更多