На этом ресурсе уже есть same issue. Но ответ кажется полностью неправильным для меня, и не работает для меня.JSON: де-сериализация подтипов
Какая проблема:
com.fasterxml.jackson.databind.JsonMappingException: не удалось разрешить идентификатор типа 'MyRequest $ GETALL' в подвид [простой тип, класс запрос ]
То, что я имел:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@class")
@JsonSubTypes({ @JsonSubTypes.Type(value = MyRequest.GetAll.class)})
public class Request {
}
public class MyRequest extends Request {
public static class GetAll extends MyRequest {
public GetProfiles() {
}
}
То, что я пытался сделать:
Я пытался следовать that советы, и перейти в регистрации подтипы из аннотации к Java-код:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@class")
public class Request {
}
public class MyRequest extends Request {
public static class GetAll extends MyRequest {
public GetProfiles() {
}
}
public class Utils {
private static final ObjectMapper mapper;
static {
mapper = new ObjectMapper();
registerSubtypes();
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
}
private static registerSubtypes() { //REGISTER ALL SUBTYPES
mapper.registerSubtypes(MyRequest.GetAll.class);
//...
}
}
Но нет результата, Я все еще получаю исключение! Самое любопытное в этой ситуации, что он отлично работает на моей локальной машине, но не работает после развертывания.
Вопрос:
Что я должен попытаться решить эту проблему?