Получение ошибки при использовании аннотации Джексона @JsonTypeInfo и @JsonSubTypesJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Получение ошибки при использовании аннотации Джексона @JsonTypeInfo и @JsonSubTypes

Сообщение Гость »


Привет, ребята, я получаю следующую ошибку при отправке запроса от почтальона

org.springframework.core.codec.DecodingException: ошибка декодирования JSON: не удалось разрешить идентификатор типа «4» как подтип com.myproject.onetoone.viewmodels.request.TopicGenerationRequest : идентификаторы известных типов = [GoalsGenerationRequest, TodoGenerationRequest, TopicGenerationRequest]; вложенное исключение — com.fasterxml.jackson.databind.exc.InvalidTypeIdException: не удалось разрешить идентификатор типа «4» как подтип com.myproject.onetoone.viewmodels.request.TopicGenerationRequest: известные идентификаторы типов = [GoalsGenerationRequest, TodoGenerationRequest, TopicGenerationRequest] в [Источник: (io.netty.buffer.ByteBufInputStream); строка: 2, столбец: 13]

мой родительский класс:

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") @JsonSubTypes({ @Type(value = GoalsGenerationRequest.class, name="GoalsGenerationRequest"), @Type(value = TodoGenerationRequest.class, name="TodoGenerationRequest") }) @Getter @Сеттер @AllArgsConstructor @NoArgsConstructor общественный класс TopicGenerationRequest { частный тип int;

Дочерний класс GoalsGenerationRequest:

import com.myproject.onetoone.viewmodels.request.TopicGenerationRequest; импортировать com.fasterxml.jackson.annotation.JsonTypeInfo; импортировать com.fasterxml.jackson.annotation.JsonTypeName; импортировать ломбок.AllArgsConstructor; импортировать ломбок.Getter; импортировать ломбок.NoArgsConstructor; импортировать ломбок.Setter; импортировать java.util.List; @JsonTypeName("GoalsGenerationRequest") @Getter @Сеттер @NoArgsConstructor @AllArgsConstructor публичный класс GoalsGenerationRequest расширяет TopicGenerationRequest { частный список целей ;

Дочерний класс TodoGenerationRequest:

@JsonTypeName("TodoGenerationRequest") @Getter @Сеттер публичный класс TodoGenerationRequest расширяет TopicGenerationRequest { @NotNull(message = «Необходимо передать действительный UUID») частный UUID OwnerId; @NotBlank(message = «Необходимо добавить допустимое название») частный заголовок строки; частный крайний срок ZonedDateTime;

Дочерний класс GoalsGenerationRequest с именем Goal:

@Getter @Сеттер @NoArgsConstructor @AllArgsConstructor Цель публичного класса { частный тип int; частный внутренний идентификатор;

Запрос сделан от почтальона следующим образом:

{ «тип»: 4, "цели": [ { «тип»: 3, "идентификатор": 456 }, { «тип»: 3, "идентификатор": 454 } ]

Конечная точка, в которой отображается запрос, имеет следующую логику:

Mono ProfileIdentityMono = Utility.getUserPrincipal().map(UserPrincipal::getProfileID); Mono GenerationRequest = serverRequest.bodyToMono(TopicGenerationRequest.class) .onErrorResume(castError -> Mono .error(new ClientErrorException(ErrorCodes.INVALID_REQUEST, "укажите допустимое тело json")));

Пожалуйста, помогите :)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»