web-dev-qa-db-ja.com

Jettyサーバーの起動時にエントリ「module-info.class」のスキャン中にエラーが発生しました

Javaサーバーを起動したときに最近これが表示されます。他の誰かがこれを表示したことがありますか?もしそうなら、修正は何ですか?jarとmodule-info.classが関連するパス。

 MultiException[Java.lang.RuntimeException: Error scanning entry module-info.class from jar
 file:jetty/9.2.4.v20141103/tempDirectory/webapp/WEB-INF/lib/slf4j-api-1.8.0-alpha2.jar, Java.lang.RuntimeException: Error scanning entry module-info.class from jar
 file:jetty/9.2.4.v20141103/tempDirectory/webapp/WEB-INF/lib/log4j-over-slf4j-1.8.0-alpha2.jar, Java.lang.RuntimeException: Error scanning entry module-info.class from jar
 file:jetty/9.2.4.v20141103/tempDirectory/webapp/WEB-INF/lib/jcl-over-slf4j-1.8.0-alpha2.jar] at
 org.Eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations(AnnotationConfiguration.Java:535) at
 org.Eclipse.jetty.annotations.AnnotationConfiguration.configure(AnnotationConfiguration.Java:446) at
 org.Eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.Java:473) at
 org.Eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.Java:1331) at
 org.Eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.Java:741) at
 org.Eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.Java:499) at
 org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:68) at
 org.Eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.Java:41) at
 org.Eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.Java:186) at
 org.Eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.Java:498) at
 org.Eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.Java:146) at
 org.Eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.Java:180) at
 org.Eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.Java:64) at 
 org.Eclipse.jetty.util.Scanner.reportAddition(Scanner.Java:609) at 
 org.Eclipse.jetty.util.Scanner.reportDifferences(Scanner.Java:528) at
 org.Eclipse.jetty.util.Scanner.scan(Scanner.Java:391) at
 org.Eclipse.jetty.util.Scanner.doStart(Scanner.Java:313) at
 org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:68) at
 org.Eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.Java:150) at
 org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:68) at
 org.Eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.Java:560) at
 org.Eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.Java:235) at
 org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:68) at
 org.Eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.Java:132) at 
 org.Eclipse.jetty.server.Server.start(Server.Java:387) at
 org.Eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.Java:114) at
 org.Eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.Java:61) at 
 org.Eclipse.jetty.server.Server.doStart(Server.Java:354) at
 org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:68) at
 org.Eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.Java:1255) at 
 Java.security.AccessController.doPrivileged(Native Method)     at
 org.Eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.Java:1174) at 
 Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
 Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62) at
 Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43) at
 Java.lang.reflect.Method.invoke(Method.Java:483) at
 org.Eclipse.jetty.start.Main.invokeMain(Main.Java:323) at
 org.Eclipse.jetty.start.Main.start(Main.Java:820) at
 org.Eclipse.jetty.start.Main.main(Main.Java:112)
17
Praveen Kumar

module-info.classはJava9(JPMS)機能です。

Jetty 9.4.9(またはそれ以降)は、Java 9.からの新しいJARファイルの変更をサポートしています。

使用しているランタイムJVMは関係ありません(Oracle Java 8、またはOpenJDK 11.0.3など) JEP-238 Multi-Release Jarファイル WebApp(またはサーバークラスローダー)で、JettyのバージョンをJetty 9.4.xにアップグレードする必要があります。

これは、サーブレット3.xで導入されたバイトコードスキャン要件が原因です。 Jettyは、すべてのJARファイルをスキャンして、定義済みのWebアプリケーション @HandlesTypes に一致するサーブレットアノテーションまたは参照がないかを確認する必要があります。 JEP-238が現実のものになると、これらの新しいJARファイル構造をサポートするために、このバイトコードスキャンレイヤーを適合/更新/修正する必要がありました。 Jetty 9.4.9は、バイトコードスキャン中にこれらの新しいJARファイル構造をサポートするJettyの最初のバージョンでした。

Java 9機能に関する問題:

17
Joakim Erdfelt