java - META-INF/versions/9/* 和带有 Jetty 9.2 的 Elasticsearch 6.2.2+ 上的字节码扫描错误

标签 java elasticsearch jetty multi-release-jar

使用最新版本的 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)

最佳答案

你有一个 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。

关于java - META-INF/versions/9/* 和带有 Jetty 9.2 的 Elasticsearch 6.2.2+ 上的字节码扫描错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50956562/

相关文章:

java - editText 消息未保存到数据库中

java - Elasticsearch: NoShardAvailableActionException 启动后

docker - 将日志从Docker上的应用程序发送到Elasticsearch

java - 使用证书颁发机构设置双向 ssl

tomcat - 在带有 GWT Tomcat 服务器端和 Jetty 的 IDEA 14 intelijj 中无法使用调试器 - SuperDevMode

grails - jetty 9 : setting up the most basic SSL/https

java - Windows Server 2008 环境中 JBoss AS 安装的操作系统选择

java - 枚举 Java 中可用的所有椭圆曲线名称的方法?

java - Intellij IDEA 将 junit 测试放入 jar 中

elasticsearch - 类型为top_hits的聚合器不能接受子聚合