Отсутствует идентификатор типа при попытке разрешить подтип простого типа, отсутствует тип свойства идентификатора типа - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь написать JUNIT для моего класса сериализации. Версия, которую я использую для Джексона, - jackson-databind-2.10.2 Мой конкретный класс расширяется и абстрактный класс. Когда я запускаю свой JUNIT, я получаю исключение. Отсутствует идентификатор типа при попытке разрешить подтип [простой тип, ReshipInfo]: отсутствует свойство идентификатора типа «тип» Ниже мой JSON для сериализации. Что мне не хватает. Пожалуйста, помогите.

{
 "orderId" : "12345",
 "orderDocumentType" : "SALES"
}

JUNIT Call

InputStream is = this.getClass().getClassLoader().getResourceAsStream("samples/response.json");
String control = IOUtils.toString(is, Charsets.UTF_8);
ReshipInfo reshipInfo = objectMapper.readValue(control, ReshipInfo.class);

Класс бетона

 public class ReshipInfo extends AbstractRequest {
 private Integer returnGracePeriod;
 public ReshipInfo() {
 }
 public ReshipInfo(Builder builder) {
    super(builder.orderDocumentType);       
    returnGracePeriod = builder.returnGracePeriod;

 }
 }

Аннотация Класс

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,
    include = JsonTypeInfo.As.EXISTING_PROPERTY,
    property = "type",
    visible = true)
@JsonSubTypes({
    @JsonSubTypes.Type(value = ReshipInfo.class, name = "SALES")
})
public abstract class AbstractRequest {
@JsonProperty(value = "type")
private OrderDocumentType orderDocumentType;
}
...