Я пытаюсь десериализовать EnumMap с Джексоном, и у меня возникает следующая ошибка:
javax.ws.rs.client.ResponseProcessingException: com.fasterxml.jackson.databind.JsonMappingException: Can not construct EnumMap; generic (key) type not available
at [Source: org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream@793ff30f; line: 1, column: 1]
Вот перечисление, которое я использую для ключей:
public enum ResultTypeEnum
{
PRESETS,
SUMMARY,
TERMINATION,
TIMESERIES
}
Код сервера такой:
@GET
@Path("/results")
@Produces(MediaType.APPLICATION_JSON)
public DiagnoticResults getAllResults() {
try {
return subjectService.onGetAllResults();
} catch (IllegalOperationException ex) {
throw new InternalServerErrorException(ex);
}
}
Код клиента:
@SuppressWarnings("unchecked")
public EnumMap getAllResults() {
return client.target(subjectURI + "results").request(MediaType.APPLICATION_JSON)
.get(EnumMap.class);
}
Класс результатов диагностики:
public class DiagnoticResults extends EnumMap<ResultTypeEnum, byte[]> {
public DiagnoticResults() {
super(ResultTypeEnum.class);
}
}
Это класс, который я написал от другого пользователя, у которого были проблемы с EnumMap.