jetty 9 + JDK 8 + spring 4 Annotations

Sur*_*Man 9 spring-annotations java-8 jetty-9 spring-4

升级到JDK 8后,jetty 9不再能够扫描spring注释:我收到以下错误:

MultiException[java.lang.RuntimeException: Error scanning file ApplicationInitializer.class, java.lang.RuntimeException: Error scanning file HibernateConfig.class, java.lang.RuntimeException: Error scanning file MailConfig.class, java.lang.RuntimeException: Error scanning file ServicesConfig.class, java.lang.RuntimeException: Error scanning file WebAppConfig.class]
at org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations(AnnotationConfiguration.java:530)
at org.eclipse.jetty.annotations.AnnotationConfiguration.configure(AnnotationConfiguration.java:441)
at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:466)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:745)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:492)
at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:282)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:117)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:99)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:60)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:154)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
Run Code Online (Sandbox Code Playgroud)

当我使用jdk 7时工作正常.

它试图扫描的注释是spring framework 4注释,例如:

@Configuration
@EnableWebMvc
@ComponentScan("com.cityrentals.rentahouse")
@Import({ HibernateConfig.class, ServicesConfig.class, MailConfig.class })
public class WebAppConfig extends WebMvcConfigurerAdapter {
Run Code Online (Sandbox Code Playgroud)

无论javaassist依赖性是否存在,都会发生错误

 <dependency>
   <groupId>org.javassist</groupId>
   <artifactId>javassist</artifactId>
   <version>3.18.1-GA</version>
  </dependency>
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢

谢谢Suresh

Gin*_*ead 9

由于spring mvc Java(8)与Jetty捆绑的ASM版本之间存在版本差异,因此您遇到了一些例外情况.

您需要通过下载ASM 5.xx并替换Jetty安装文件夹中的以下2个文件来使版本彼此兼容:

  1. 使用asm-5.xx.jar的asm-4.x.jar

  2. asm-commons-4.x.jar与asm-commons-5.xx.jar