У меня следующая проблема ... Существует следующий класс DTO на стороне REST-провайдера.
@JsonIgnoreProperties(ignoreUnknown = true)
public class ImportListInfoResultDTO extends TCResultDTO {
@Schema(description = "")
public ImportListInfoModelDTO importListInfo;
}
@JsonInclude(value = Include.ALWAYS)
@Schema(description = "")
public class ImportListInfoModelDTO {
public String commodityCode;
public String countryIsoCode;
public Date validFrom;
public Date validTo;
public int isImportPermitNeeded;
public int isImportLicenceNeeded;
public int isMonitoringDocumentNeeded;
public int isCertificateOfOriginNeeded;
public int isDeclarationOfOriginNeeded;
}
Те же DTO на стороне клиента. На стороне клиента я пытаюсь получить ответ JAX-RS со следующим кодом:
public ECTImportListInfo callRestService(ImportListInfoRequestDTO requestParam) {
Response data = super.callService(getImportListInfo, requestParam, webTokenHeader);
ImportListInfoResultDTO response = data.readEntity(ImportListInfoResultDTO.class);
return valueOf(response.importListInfo);
}
Получаю следующее исключение:
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "errorCause" (class de.aeb.xnsg.tariffcontent.dto.ImportListInfoResultDTO), not marked as ignorable (2 known properties: "resultMessages", "importListInfo"])
at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 16] (through reference chain: de.aeb.xnsg.tariffcontent.dto.ImportListInfoResultDTO["errorCause"])
Проблема в том, что мои DTO-классы не имеет поля "errorCause". Возможно, это поле каким-то образом добавлено сервером. Когда я тестирую свою REST-Endpoint с помощью Postman или Sawgger, нет такого поля, как «errorCause» ... Что я пробовал до сих пор (без какого-либо успеха): добавление к DTO @JsonIgnoreProperties(ignoreUnknown = true)
с обеих сторон. Добавление конфигурации в JerseyClient следующим образом:
final JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider().configure(
DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,
false);
Client jerseyHttpClient = ClientBuilder.newClient(new ClientConfig(jacksonJsonProvider));
Буду благодарен за любые подсказки. Спасибо.