Jackson Object Mapper Java 7 issue returned on Java 8

I am trying to upgrade the Java version from 1.7 to 1.8 . I have not changed any code except updating the target version to 1.8 in the Maven plugin.

Error: cannot access Versioned .

A source:

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

Unable to find documentation anywhere on the Internet. I thought 1.8 should be fully backwards compatible.

Edit : Without even changing the pom, if I install my local maven on Java 8, it still interrupts. Therefore, compilation with Java 8 arises: (

 [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 output:

 [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 
+5
source share
1 answer

It sounds like you are using a combination of very old versions of Jackson. I suspect that in Java 8 the order of the .jar files used by the Maven compiler plugin may be different than in Java 7, so the Versioned interface may not be found. This can be a problem because in Java 8, the java compiler requires the interface to be present in the classpath when compiling the implementation ( JDK-8055048 ).

The Versioned interface was introduced in 1.6.0, while you have org.codehaus.jackson:jackson-core-asl version 1.1.0. This is probably the main cause of the problem.

A low-risk fix may mean that the version of org.codehaus.jackson:jackson-core-asl version 1.9.2 corresponds to other libraries by adding the following dependency to the .pom file:

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

As a long-term solution, I suggest considering rolling Jackson version onto latest version 2.X (packaged in com.fastxml.jackson ) in all your projects and stop using version 1.X (in org.codehaus.jackson package).

+1
source

All Articles