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

jersey-spring3 (2.25.1)在jetty-9.3.3中产生“上下文启动失败”错误

尹晟
2023-03-14

我在Jetty-9.3.3环境中使用的是泽西-2.25.1和Spring框架4.3.5。我的操作系统是Centos 7和JDK 8。在部署期间,我收到以下错误:

注意:仅当在pom.xml.中添加jersey-spring3依赖项时,才会发生以下错误

Failed startup of context o.e.j.w.WebAppContext@5d37aa0f{/test-service,file:///.../test-service/,STARTING}
java.lang.RuntimeException: Error scanning entry module-info.class from jar file:///.../test-service/WEB-INF/lib/asm-all-repackaged-2.5.0-b32.jar
        at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:925)
        at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:842)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:545)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
        at java.lang.Thread.run(Thread.java:745)
Caused by:
java.lang.IllegalArgumentException
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:988)
        at org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry(AnnotationParser.java:970)
        at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:921)
        at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:842)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:545)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
        at java.lang.Thread.run(Thread.java:745)

Jetty的/lib/annotations/asm-5.0.1.jar和asm-commons-5.0.1.jal或jersey-spring3.jar有问题吗?

共有1个答案

梅玉堂
2023-03-14

我查看了module-info.class文件

$ javap -v  ./module-info.class 
...
class org.glassfish.hk2.external.org.objectweb.asm.all.debug.module-info
minor version: 0
major version: 53

因此,它是用java 9编译的,是java 9中的一部分新模块系统。

无论如何,扫描这个文件是没有用的(尤其是使用java 8)。

我通过排除所有重新打包的asm修复了该问题。jetty注释扫描的jar

<plugin>
   <groupId>org.eclipse.jetty</groupId>
   <artifactId>jetty-maven-plugin</artifactId>
   <version>9.4.0.v20161208</version>
   <configuration>
     <webApp>
       ...
       <webInfIncludeJarPattern>.*/^(asm-all-repackaged)[^/]*\.jar$</webInfIncludeJarPattern>
     </webApp>
   </configuration>
</plugin>

以下是关于webInfIncludeJarPattern的文档

 类似资料:
  • 问题内容: 我是Java EE + Spring + Hibernate + Maven组合的新手。尝试使用tomcat 6.0创建一个简单的项目。 我们的项目就很好,调试没有问题。但是,当我尝试运行服务器时,它始终会显示“ Error listenerStart”。 我在网上搜索了3天,但没有找到关于此错误的解决方案。有人可以帮我解决这种情况吗? 谢谢你的帮助。 -我的控制台输出- -我的Ser

  • 我正在努力调试一个NextJS API,该API正在开发中(通过本地主机),但在生产中悄无声息地失败。 下面,两个没有返回,所以我怀疑调用没有正确执行,可能会及时? 我不知道该怎么纠正,很高兴按指示调试解决这个问题!

  • 我在Ubuntu服务器VCS中安装了jetty 9服务器。java rest项目的结构: /opt/jetty/webapps/backend/ 构建 conf lib 库 日志 s rc/com/example/pack/backend 资源 CategoryResource.java 网络 网.xml BackendServer.java 类别资源.java 网.xml /opt/jetty/

  • 问题内容: 由于我已经为Eclipse下载了全新的安装程序,因此无法再启动它。错误消息显示“发生了错误,请参阅日志文件/Applications/eclipse/configuration/1323191649568.log。” 在重新安装之前,我已经多次删除了有关Eclipse Java Runtime的所有文件和文件夹。并且,命令./eclipse -clean给我同样的错误。 任何想法? 这