2014-04-01 21 views
8

Sau khi nâng cấp lên JDK 8, cầu cảng 9 là không còn khả năng quét các chú thích mùa xuân: Tôi nhận được lỗi sau:cầu cảng 9 + JDK 8 + mùa xuân 4 Chú thích

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) 

Nó đã làm việc tốt khi tôi đã sử dụng jdk 7.

Các chú thích nó cố gắng để quét là khuôn khổ mùa xuân 4 chú thích một cái gì đó như:

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

Lỗi này xảy ra bất kể nếu phụ thuộc javaassist hiện diện hay không

<dependency> 
    <groupId>org.javassist</groupId> 
    <artifactId>javassist</artifactId> 
    <version>3.18.1-GA</version> 
    </dependency> 

Bất kỳ giúp đỡ được nhiều đánh giá

Cảm ơn Suresh

Trả lời

9

Do sự khác biệt về phiên bản giữa Java mvc mùa xuân (8) và phiên bản ASM được bao gồm trong Jetty, bạn có loại ngoại lệ mà bạn đã gặp phải.

Bạn cần phải thực hiện các phiên bản tương thích với nhau bằng cách tải về ASM 5.xx và thay thế 2 file sau trong thư mục cài đặt Jetty:

  1. asm-4.x.jar với asm-5 .xx.jar

  2. asm-commons-4.x.jar với asm-commons-5.xx.jar

+1

vấn đề dường như được cố định trong cầu cảng-9.2.2 (có thể sớm hơn) –

3

Sử dụng cầu cảng-9.1.x, Java 8 và mùa xuân 4 câu trả lời bởi Đầu gừng là chính xác. Chỉ cần bổ sung câu trả lời rằng:

Nếu bạn đang sử dụng cầu cảng-Á hậu với phiên bản 9.1.x bạn có thể nhận thấy rằng nó sử dụng một phiên bản đóng gói của asm (kèm trong lọ). Để làm cho nó hoạt động với phiên bản đóng gói, tôi phải thêm các asm-jars vào đường dẫn lớp , trước khi jetty-runner-jar và sau đó bắt đầu jetty-runner mà không có cờ -jar và thay vào đó chỉ ra lớp chính (org) .eclipse.jetty.runner.Runner).

Vì vậy, này LÀ làm việc:

java -cp lib/asm-5.x.jar:lib/asm-commons-5.x.jar:lib/asm-tree-5.x.jar:lib/jetty-runner.jar org.eclipse.jetty.runner.Runner foo.war 

Sau đây là KHÔNG làm việc:

java -cp -jar lib/jetty-runner.jar foo.war 
or 
java -cp lib/asm-5.x.jar:lib/asm-commons-5.x.jar:lib/asm-tree-5.x.jar -jar lib/jetty-runner.jar foo.war 
+3

nhanh cập nhật, vấn đề này hiện đã được giải quyết trong các phiên bản sau của Jetty (hoặc cụ thể hơn trong phiên bản 9.2.0.v20140526). Phiên bản mới không yêu cầu xử lý đặc biệt các asm-jars cho Java 8, Jetty 9 và Spring 4 - nó sẽ hoạt động tốt hơn. – wassgren

Các vấn đề liên quan