2015-07-22 16 views
5

Tôi đang cố gắng nâng cấp phiên bản Java từ 1.7 thành 1.8. Không thay đổi bất kỳ mã nào ngoài việc nâng cấp phiên bản đích thành 1.8 trong trình cắm Maven.Jackson Object Mapper Vấn đề được phiên bản từ Java 7 đến Java 8

Error: cannot access Versioned.

Nguồn:

private ObjectMapper mapper = new ObjectMapper(); 
return mapper.writeValueAsString(data); 

Không thể tìm thấy bất kỳ tài liệu bất cứ nơi nào trên Internet. Tôi nghĩ rằng 1.8 phải hoàn toàn tương thích ngược.

Chỉnh sửa: Thậm chí không thay đổi pom, nếu tôi đặt con quạ địa phương của mình sang Java 8, nó vẫn đang bị hỏng. Vì vậy, biên soạn với Java 8 là có vấn đề :(

[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.2.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-core-asl:jar:1.1.0:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.2.2:compile 
[INFO] +- com.fasterxml:jackson-xml-databind:jar:0.6.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-xc:jar:1.9.2:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.2.2:compile 
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.2.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-core-asl:jar:1.1.0:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.2.2:compile 
[INFO] +- com.fasterxml:jackson-xml-databind:jar:0.6.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-xc:jar:1.9.2:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.2.2:compile 
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.2.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-core-asl:jar:1.1.0:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.2.2:compile 
[INFO] +- com.fasterxml:jackson-xml-databind:jar:0.6.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-xc:jar:1.9.2:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.2.2:compile 
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.2.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-core-asl:jar:1.1.0:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.2.2:compile 
[INFO] +- com.fasterxml:jackson-xml-databind:jar:0.6.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-xc:jar:1.9.2:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.2.2:compile 
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.2.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-core-asl:jar:1.1.0:compile 
[INFO] | +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.11:compile 
[INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.11:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.2.2:compile 
[INFO] +- com.fasterxml:jackson-xml-databind:jar:0.6.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-xc:jar:1.9.2:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.2.2:compile 
[INFO] +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile 
[INFO] | | +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.11:compile 
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.6.0-rc2:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.2.2:compile 
[INFO] +- com.fasterxml:jackson-xml-databind:jar:0.6.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.2:compile 
[INFO] | +- org.codehaus.jackson:jackson-xc:jar:1.9.2:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.2.2:compile 

-X đầu ra:.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project my-module: Compilation failure 
[ERROR] /Users/xxxxxx/MyApp.java:[52,15] error: cannot access Versioned 
[ERROR] -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project myntra-orch-lms: Compilation failure 
/Users/xxxxxx/MyApp.java:[52,15] error: cannot access Versioned 

    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) 
    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:497) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure 
/Users/xxxxxx/MyApp.java:[52,15] error: cannot access Versioned 

    at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:656) 
    at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
    ... 20 more 
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 
+1

Hmm, bạn có nên [mở một vấn đề] (https://github.com/FasterXML/jackson-databind/issues) thay thế không? – fge

+0

@fge, tôi không chắc liệu đó là vấn đề Jackson hay một số vấn đề chính hãng khác mà tôi không biết. Nó là tốt hơn để biết trước khi tôi nêu vấn đề – Reddy

+0

Vâng, với tôi nó chắc chắn âm thanh như một lỗi. Như bạn nói, không có lý do tại sao việc cập nhật JDK sẽ làm cho mã của bạn thất bại. Nhưng đó là quyết định của bạn, tất nhiên;) – fge

Trả lời

1

Dường như bạn đang sử dụng một kết hợp của các phiên bản Jackson rất cũ Tôi nghi ngờ rằng trong Java 8 thứ tự Các tệp .jar được trình biên dịch Maven sử dụng có thể khác nhau trong Java 7 vì vậy giao diện Versioned có thể không được tìm thấy.Nó có thể là một vấn đề vì trong Java 8 trình biên dịch java yêu cầu giao diện phải có mặt trong classpath khi biên dịch việc triển khai (JDK-8055048).

Giao diện Versioned được giới thiệu trong phiên bản 1.6.0 trong khi bạn có phiên bản org.codehaus.jackson:jackson-core-asl 1.1.0. Đó có lẽ là nguyên nhân gốc rễ của vấn đề.

Một sửa chữa rủi ro thấp có thể là để bump phiên bản org.codehaus.jackson:jackson-core-asl để 1.9.2 để tương ứng với các thư viện khác bằng cách thêm các phụ thuộc sau đây trong tập tin .pom:

<dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-core-asl</artifactId> 
    <version>1.9.2</version> 
</dependency> 

Là một giải pháp lâu dài, tôi đề nghị để xem xét việc đưa phiên bản Jackson lên phiên bản 2.X mới nhất (được đóng gói trong com.fastxml.jackson) trong tất cả các dự án của bạn và ngừng sử dụng phiên bản 1.X (được đóng gói trong org.codehaus.jackson).

+0

Gavirolv, cho tôi biết làm cách nào tôi có thể giúp bạn giải quyết vấn đề này.Đó là dự án rất lớn và -X in rất nhiều nhật ký. Bất cứ điều gì cụ thể bạn đang tìm kiếm? Mặc dù tôi không hiểu cách thay đổi phiên bản Java có thể gây ra vấn đề này? Nó đang xảy ra trong 'một dự án khác '. Lỗi tương tự khi chúng tôi đang sử dụng 'mapper.writeValueAsString (mục nhập); ' – Reddy

+0

@Reddy Tôi đã cập nhật câu trả lời của mình. Hãy xem nếu nó giúp. –

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