Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jersey-spring3(2.25.1)生产;无法启动上下文“;jetty-9.3.3中的错误_Java_Spring_Jersey_Jetty_Maven 3 - Fatal编程技术网

Java jersey-spring3(2.25.1)生产;无法启动上下文“;jetty-9.3.3中的错误

Java jersey-spring3(2.25.1)生产;无法启动上下文“;jetty-9.3.3中的错误,java,spring,jersey,jetty,maven-3,Java,Spring,Jersey,Jetty,Maven 3,我正在Jetty-9.3.3环境中使用Jersey-2.25.1和Spring框架4.3.5。我的操作系统是Centos 7和JDK 8。在部署期间,我收到以下错误: 注意:只有在pom.xml中添加jersey-spring3依赖项时,才会发生以下错误 上下文o.e.j.w的启动失败。WebAppContext@5d37aa0f测试服务,,file:///.../test-service/,开始} java.lang.RuntimeException:从jar扫描条目module-info.c

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

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

上下文o.e.j.w的启动失败。WebAppContext@5d37aa0f测试服务,,file:///.../test-service/,开始}
java.lang.RuntimeException:从jar扫描条目module-info.class时出错file:///.../test-service/WEB-INF/lib/asm-all-repackaged-2.5.0-b32.jar
位于org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:925)
位于org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:842)
位于org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
位于org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:545)
位于org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
位于org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
运行(Thread.java:745)
原因:
java.lang.IllegalArgumentException
位于org.objectweb.asm.ClassReader。(未知来源)
位于org.objectweb.asm.ClassReader。(未知来源)
位于org.objectweb.asm.ClassReader。(未知来源)
位于org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:988)
位于org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry(AnnotationParser.java:970)
位于org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:921)
位于org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:842)
位于org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
位于org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:545)
位于org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
位于org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
运行(Thread.java:745)

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

我查看了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
因此,它是用Java9编译的,它是一部分

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

我通过从jetty注释扫描中排除所有重新打包的.jar
asm解决了这个问题:

<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>

org.eclipse.jetty

您是否从jersey-spring3中排除了所有Spring 3依赖项?@peeskillet,没有。实际上,我们希望保留自己的Spring依赖项。无论如何,我没有添加上述解决方案。我已在pom.xml上明确声明asm-all-repackaged-2.4.0作为解决此问题的依赖项。org.glassfish.hk2.external‌阿斯玛艾尔‌​l-重新包装2.4‌​.0现在,一切都好了。
<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>