mht*_*mht 10 apache-kafka spring-kafka jackson-databind
我正在使用 Spring Boot 和 Json Deserializer 来运行 kafka Consumer。运行应用程序时我收到错误
Caused by: java.lang.NoSuchFieldError: READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE
at com.fasterxml.jackson.databind.deser.std.EnumDeserializer.createContextual(EnumDeserializer.java:211)
at com.fasterxml.jackson.databind.DeserializationContext.handlePrimaryContextualization(DeserializationContext.java:836)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:550)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:294)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
at com.fasterxml.jackson.databind.DeserializationContext.findNonContextualValueDeserializer(DeserializationContext.java:644)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:539)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:294)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
at com.fasterxml.jackson.databind.DeserializationContext.findNonContextualValueDeserializer(DeserializationContext.java:644)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:539)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:294)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:654)
at com.fasterxml.jackson.databind.ObjectReader._prefetchRootDeserializer(ObjectReader.java:2430)
at com.fasterxml.jackson.databind.ObjectReader.<init>(ObjectReader.java:194)
at com.fasterxml.jackson.databind.ObjectMapper._newReader(ObjectMapper.java:780)
at com.fasterxml.jackson.databind.ObjectMapper.readerFor(ObjectMapper.java:4263)
at org.springframework.kafka.support.serializer.JsonDeserializer.initialize(JsonDeserializer.java:502)
at org.springframework.kafka.support.serializer.JsonDeserializer.setupTarget(JsonDeserializer.java:487)
... 56 common frames omitted
Run Code Online (Sandbox Code Playgroud)
我正在使用 spring-boot 3.0.5 和 jackson-databing 2.15.0。有人遇到过同样的错误吗?
我试图调试这个问题,它似乎与我的域对象包含枚举类型作为属性这一事实有关。Jackson 扫描对象的结构并急切地加载每种类型的反序列化器,当到达枚举类型时它会失败。有谁知道我如何跟踪和解决问题?
java.lang.NoSuchFieldError:READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE
不知何故,您似乎在类路径上有旧版本的 jackson-annotations jar;它应该与数据绑定 jar 版本相同。
这是一个新的枚举值JsonFormat.Feature
:
/**
* Override for <code>DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE</code>,
* which allows unknown Enum values to be ignored and a predefined value specified through
* {@link com.fasterxml.jackson.annotation.JsonEnumDefaultValue @JsonEnumDefaultValue} annotation.
*
* @since 2.15
*/
READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE,
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7328 次 |
最近记录: |