当前位置: 首页 > 知识库问答 >
问题:

启动Jetty server时扫描条目“module info.class”时出错

马坚白
2023-03-14

我最近在启动java服务器时看到了这一点。还有谁见过这个吗?如果是这样,解决办法是什么?我可以确认jar和模块信息。类存在于相关路径中。

 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)

共有1个答案

南门正祥
2023-03-14

模块信息。类是Java9(JPMS)的一个特性。

Jetty 9.4.9(或更新版本)支持Java 9中的新JAR文件更改。

无论您使用的是什么运行时JVM(Oracle Java 8,甚至类似OpenJDK 11.0.3),如果您在WebApp(或服务器类加载器)中使用这些JEP-238多版本Jar文件,则需要将Jetty版本升级到Jetty 9.4。十、

这是因为Servlet 3需要字节码扫描。x介绍。Jetty需要扫描所有JAR文件,以查找与您的webapp定义的@handleTypes匹配的可能servlet注释或引用。一旦JEP-238成为现实,这个字节码扫描层就必须进行调整/更新/修复,以支持这些新的JAR文件结构。Jetty 9.4.9是Jetty的第一个版本,它在字节码扫描期间支持这些新的JAR文件结构。

有关Java 9功能的问题:

  • https://github.com/eclipse/jetty.project/issues/1692-不包括模块信息。从字节码扫描中初始化
  • https://github.com/eclipse/jetty.project/issues/1797-正确支持META-INF/versions/*多版本JAR文件(JEP 238)

 类似资料:
  • 您可以通过Burp 控制台(Burp Dashboard)上的新的扫描(New scan)按钮或是 Burp 中出现的菜单中的Scan选项来启动扫描。利用这些方法可打开扫描启动窗口,然后您可以使用它配置扫描中的各种详细参数。 扫描细节 扫描启动界面的详细的扫描信息(Scan details)部分允许您选择扫描类型,配置要扫描的内容等等信息。 扫描类型 您可以选择以下扫描类型: 抓取并审计(Craw

  • 实时扫描可根据 Burp 的子工具中的请求和响应自动执行一些扫描操作。 您可以使用实时扫描来审计漏洞, 或是吧观察到的资源添加到 Burp 的 Target 工具的站点地图(Site map) 实时扫描配置 实时扫描需要配置以下内容才可以进行使用: 工具范围 - 您可以选择要检查其流量的工具,以选择由实时扫描处理的项目。 URL范围 - 您可以根据URL来定义实时扫描处理的项目。 您可以选择包含所

  • 我已经在许多地方查阅了下面的错误,但似乎无法就解决方案或一个有效的解决方案达成共识。 “Maven项目扫描错误[项目路径];Java.lang.OutOfMemoryError:Java堆空间” 我将MAVEN_OPTS设置为“-xms512m-xmx1024m-xx:maxpermsize=1024” 我正在导入的项目是一个资产项目,有许多图像、图标、.swf和JS文件。 是不是我还需要什么,或

  • 我正在编写一个新的SpringBoot项目,其中我的根包名是“com.example”。在我的gradle配置中,我添加了一个第三方库的依赖项,它的根包名为“org.base”。现在,这个库中有带有@Component注释的类,我想在代码中使用@Autowired 在我的配置类中,我也扫描第三方库的基本包。 当我运行应用程序时,spring无法从这个库中找到/创建bean,我得到了一个bean n

  • 声纳扫描仪在运行扫描仪时抛出空指针异常。错误指向一个枚举。它实现了一个典型的接口。 我记得几个月前运行扫描仪时没有出现任何问题,但这次不同了,感谢您的帮助。 添加了一些乱码,我可以保证没有编译问题。 包括声纳项目属性。#所需元数据sonar.project密钥=com.companysonar.project名称=项目sonar.project版本=1.0

  • 我对我的代码有一点理解上的问题。每次运行代码时,在输入第一个整数后都会收到此错误消息。 在java.util.scanner.throwfor(未知源)在java.util.scanner.next(未知源)在java.util.scanner.nextint(未知源)在java.util.scanner.nextint(未知源)在java.util.scanner.nextint(未知源)在a2