Из размещенного вами фрагмента кода
Response response = responseWs.readEntity (Response.class);
Я бы порекомендовал использовать другое имя для вашего объекта сущности . Класс Response
также используется самой структурой jaxrs.
Я предполагаю, что вы используете RestEasyClient
для вызова этой (внешней) службы для получения JSON. Если понятно, что ответ от этой службы находится в JSON, вы можете использовать JSON (jackson) marshaller / unmarshaller вместо JAXB. Предполагая, что у вас уже есть зависимость «resteasy-client», доступная в вашем пути к классам. Форма этой зависимости maven выглядит следующим образом:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.19.Final</version>
</dependency>
- Измените имя DTO на что-то
ExternalServiceResponse
- При выполнении
GET
запроса вы явно указываете ответ тип носителя
Response response = target.request(MediaType.APPLICATION_JSON).get();
ExternalServiceResponse result = response.readEntity(ExternalServiceResponse.class)
Наконец, я не понимаю, почему вам нужно указывать аннотацию
@XmlRootElement
в вашем DTO
public class ExternalServiceResponse implements Serializeable {
private String error_code;
private String message;
private String field_name;
public String getError_code() {
return error_code;
}
public void setError_code(String error_code) {
this.error_code = error_code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getField_name() {
return field_name;
}
public void setField_name(String field_name) {
this.field_name = field_name;
}
}