以最新版本的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)
答案 0 :(得分:2)
您的类路径中有一个JEP238 MultiRelease Jar File。
以META-INF/versions/9/
为前缀条目的证据。
JEP238是Java 9引入的一个概念。
直到Jetty 9.4.9.v20180320(于2018年3月)才引入了对字节码扫描期间处理JEP238 MultiRelease JAR文件的Jetty支持。
如果您需要使用Jetty 9.2.x,则不必使用JEP238 MultiRelease JAR文件。
如果必须使用JEP238 MultiRelease JAR文件,则必须至少升级到Jetty 9.4.9.v20180320。