В AWS Java SDK V1 все классы представляли собой обычные POJO со стандартными методами получения и установки, поэтому с помощью Jackson можно было легко сериализовать/десериализовать их.
Пример:
TaskDefinition taskDefinition = ecsClient.describeTaskDefinition(new DescribeTaskDefinitionRequest().withTaskDefinition("myTaskDefinition")).getTaskDefinition();
System.out.println(new ObjectMapper().writeValueAsString(taskDefinition));
Результат:
{"taskDefinitionArn":"...","containerDefinitions":[...]}
Но когда я пробую то же самое с AWS Java SDK V2, в результате получается пустой объект JSON.
Пример:
TaskDefinition taskDefinition = ecsClient.describeTaskDefinition(DescribeTaskDefinitionRequest.builder().taskDefinition("myTaskDefinition").build()).taskDefinition();
System.out.println(new ObjectMapper().writeValueAsString(taskDefinition));
Результат:
{}
И когда я пытаюсь десериализовать с помощью Jackson, это приводит к ошибке:
Cannot construct instance of `software.amazon.awssdk.services.ecs.model.TaskDefinition` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)