6

com.fasterxml.jackson.core:jackson-annotations:2.6.0私のgradleプロジェクトで使用しています。プロジェクトのビルド ファイルに追加com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.6.0してから、gradle プロジェクトの実行中にこの例外が発生しました。これが私のエラーのスタックトレースです。

原因: org.springframework.beans.BeanInstantiationException: インスタンス化に失敗しました [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]: コンストラクターが例外をスローしました。ネストされた例外は java.lang.NoSuchMethodError: com.fasterxml.jackson.annotation.JsonFormat$Value.empty()Lcom/fasterxml/jackson/annotation/JsonFormat$Value; です。org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:163) で org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89) で org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory .instantiateBean(AbstractAutowireCapableBeanFactory.java:1098) ... 117 以上 原因: java.lang.NoSuchMethodError: com.fasterxml.jackson.annotation.JsonFormat$Value. empty()Lcom/fasterxml/jackson/annotation/JsonFormat$Value; com.fasterxml.jackson.databind.cfg.MapperConfig.(MapperConfig.java:50) で com.fasterxml.jackson.databind.ObjectMapper.(ObjectMapper.java:535) で com.fasterxml.jackson.databind.ObjectMapper.( ObjectMapper.java:452) org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:553) org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.(MappingJackson2HttpMessageConverter.java:57) org. springframework.http.converter.support.AllEncompassingFormHttpMessageConverter.(AllEncompassingFormHttpMessageConverter.java:61) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.(RequestMappingHandlerAdapter.java:187) at sun.reflect. NativeConstructorAccessorImpl.newInstance0(Native Method) の sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) の sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) の java.lang.reflect.Constructor.newInstance(Constructor. java:422) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147) ... 119 より多く org.springframework.beans.factory.BeanCreationException にネスト: 'org.springframework.web. servlet.mvc.method.annotation.RequestMappingHandlerAdapter': Bean のインスタンス化に失敗しました。ネストされた例外は org.springframework.beans.BeanInstantiationException: インスタンス化に失敗しました [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]: コンストラクターが例外をスローしました。ネストされた例外は java.lang.NoSuchMethodError: com.fasterxml.jackson.annotation.JsonFormat$Value.empty()Lcom/fasterxml/jackson/annotation/JsonFormat$Value;: java.lang.NoSuchMethodError: com.fasterxml.jackson.annotation です。 .JsonFormat$Value.empty()Lcom/fasterxml/jackson/annotation/JsonFormat$Value; com.fasterxml.jackson.databind.cfg.MapperConfig.(MapperConfig.java:50) で com.fasterxml.jackson.databind.ObjectMapper.(ObjectMapper.java:535) で com.fasterxml.jackson.databind.ObjectMapper.( ObjectMapper.java:452) org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:553) org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.(MappingJackson2HttpMessageConverter.java:57) org. springframework.http.

@JsonFormat私は自分のクラスで使用していません。しかし、UTC で Json との間でシリアル化および逆シリアル化するために 2 つのクラスを使用する注釈がJsonSerializerあります。このシリアライゼーションとデシリアライゼーションを初めて行うので、提案をお願いします。JsonDeserializerZonedDateTime

これが私のgradleファイルコードです:

apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'jetty' apply plugin: 'maven' apply plugin: 'war'

ext {  springVersion = "4.2.4.RELEASE"  springSecurityVersion = "4.0.3.RELEASE" }

repositories {      mavenLocal()    mavenCentral()
     /* maven {
        url "http://repo.typesafe.com/typesafe/releases/"
    } */ }

configurations.all {    exclude group: "commons-logging", module: "commons-logging"    exclude group: "log4j", module: "log4j" }

dependencies {    compile 'org.slf4j:jcl-over-slf4j:1.7.12'    compile 'ch.qos.logback:logback-classic:1.1.3'    compile "org.springframework:spring-core:$springVersion"    compile "org.springframework:spring-context:$springVersion"
        compile ("org.springframework:spring-web:$springVersion"){
       exclude group: "com.fasterxml.jackson.core"    }    compile ("org.springframework:spring-webmvc:$springVersion"){
       exclude group: "com.fasterxml.jackson.core"    }    compile "org.springframework:spring-orm:$springVersion"    compile "org.springframework.security:spring-security-web:$springSecurityVersion" compile "org.springframework.security:spring-security-config:$springSecurityVersion"
       compile "org.aspectj:aspectjrt:1.7.4"

   compile "org.hibernate:hibernate-core:4.3.6.Final"        compile "org.hibernate:hibernate-entitymanager:4.3.6.Final"    compile "javax.servlet:javax.servlet-api:3.1.0"    compile "org.javassist:javassist:3.15.0-GA"    compile "mysql:mysql-connector-java:5.1.31"
       compile "org.hsqldb:hsqldb:2.3.2"
       compile "commons-dbcp:commons-dbcp:1.2.2"    compile "org.apache.commons:commons-lang3:3.4"      compile 'com.fasterxml.jackson.core:jackson-annotations:2.7.0'    compile 'com.fasterxml.jackson.core:jackson-core:2.7.0'    compile 'com.fasterxml.jackson.core:jackson-databind:2.7.0'    compile 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.7.0'

       compile "net.sf.ehcache:ehcache-core:2.6.9"    compile "org.hibernate:hibernate-ehcache:4.3.5.Final"    compile "com.h2database:h2:1.4.177"    compile "com.google.code.gson:gson:2.6.2" 
       testCompile ("junit:junit:4.12"){
        exclude group: "org.hamcrest"    }    testCompile "org.springframework:spring-test:$springVersion"    testCompile "org.easetech:easytest-core:1.4.0"    testCompile "org.mockito:mockito-core:1.9.5"    testCompile "org.hamcrest:hamcrest-all:1.3"    testCompile "com.jayway.jsonpath:json-path:2.2.0"    testCompile "com.jayway.jsonpath:json-path-assert:2.2.0"
       testRuntime "org.hsqldb:hsqldb:2.3.2"  }
4

4 に答える 4

16

プロジェクトの依存関係を確認してください。互換性のないライブラリ バージョンを使用している可能性があります。バージョン 2.7 にはメソッド empty() があり、バージョン 2.6 にはありません。

http://fasterxml.github.io/jackson-annotations/javadoc/2.6/com/fasterxml/jackson/annotation/JsonFormat.Value.html

http://fasterxml.github.io/jackson-annotations/javadoc/2.7.0-rc1/com/fasterxml/jackson/annotation/JsonFormat.Value.html

バージョン 2.7 にアップグレードしてみてください。

于 2016-04-18T10:27:46.360 に答える
1

タスクを実行しようとしたときに問題を解決しました-gradle clean。古いプロジェクトの依存関係が今まで残っていたと思います。プロジェクトをきれいにするだけの問題でした。プロジェクトは現在正常に動作しています。:)

于 2016-04-22T12:18:25.167 に答える
0

.m2ディレクトリからすべてのjacksonファイルを削除し、すべてのjackson pom、つまりデータバインド、注釈などが同じバージョンであることを確認してください。必要に応じて、バージョンをダウングレードします。つまり、jackson 2.7.3 が 2.10.3 ではなく正常に動作します。

于 2020-09-28T11:43:15.603 に答える