#kotlin #jackson
#kotlin #джексон
Вопрос:
Обновлено до jackson 2.12.x, и мои сборки в Kotlin 1.3.x не работают, что, по-видимому, связано с недоступностью метода. Я не могу понять, нарушает ли это изменение, исходящее от Jackson.
Caused by: java.lang.NoSuchMethodError: kotlin.reflect.KClass.getSealedSubclasses()Ljava/util/List;
| at com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.findSubtypes(KotlinAnnotationIntrospector.kt:72)
| at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.findSubtypes(AnnotationIntrospectorPair.java:263)
| at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.findSubtypes(AnnotationIntrospectorPair.java:263)
| at com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver._collectAndResolveByTypeId(StdSubtypeResolver.java:288)
... jackson internals omitted ...
| at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3601)
| at com.xxxxxxx.util.JacksonSerializationHelper.deserialize(JacksonSerializationHelper.kt:94)
Ответ №1:
Похоже, что некоторые вещи были обесценены при обновлении.
Вам нужно посмотреть примечания к обновлению, потому что этот метод больше не существует getSealedSubclasses()
Вы можете найти ответ здесь: https://github.com/FasterXML/jackson/wiki/Jackson-Releases
Если вы не можете найти его здесь, вам нужно будет создать отчет об ошибке
Комментарии:
1.
getSealedSubclasses()
это API kotlin. Это обновление Jackson. Или вы имеете в виду, что функция jackson теперь использует что-то еще, чего нет в Kotlin 1.3?2. Да, я думаю, что обновите оба