Не удалось извлечь ответ в RestTemplate

У меня есть приложение SpringBoot. с этим конфигурационным файлом:

@Configuration
public class ApplicationConfig {

    @Bean
    public RestTemplate restTemplate() {
        RestTemplate restTemplate = new RestTemplate();
        MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
        mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM));
        restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter);
        return restTemplate;
    }

}

и этот класс:

@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(NON_NULL)
public class GeolocationAddress {

    private Integer placeId;
    private String licence;
    private String osmType;
    private Integer osmId;
    private List<String> boundingbox = null;
    private String lat;
    private String lon;
    private String displayName;
    private String _class;
    private String type;
    private Double importance;
    private Address address;
}

и этот сервис:

public GeolocationAddress searchFromAddress(String address) {

    HttpHeaders headers = new HttpHeaders();
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
    HttpEntity<String> entity = new HttpEntity<String>(headers);

    return restTemplate.exchange("http://nominatim.openstreetmap.org/search?" + address, HttpMethod.GET, entity, GeolocationAddress.class).getBody();
}

но у меня есть эта ошибка при запуске службы:

org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.bonansa.domain.GeolocationAddress] and content type [text/html]

    at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:126)
    at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:998)
    at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:981)

person Nunyet de Can Calçada    schedule 03.12.2020    source источник
comment
Несмотря на то, что вы установили Accept: application/json, сервер отвечает HTML (см.: content type [text/html]), что, вероятно, означает, что запрос не удался, и он отправил вам HTML-страницу с ошибкой, или, возможно, он требует входа в систему, и сервер отправил вам страница.   -  person Andreas    schedule 04.12.2020


Ответы (1)