Почему Spring OAuth2RestOperations HTTP-клиент генерирует ResourceAccessException вместо того, чтобы возвращать мне HTTP-код ответа? - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь перепроектировать рабочий кусок программного обеспечения, чтобы получить необработанный HTTP-запрос, чтобы я мог запустить его с помощью Postman или другого HTTp-клиента.

import org.springframework.security.oauth2.client.OAuth2RestOperations;

private OAuth2RestOperations restTemplate;

@Autowired
public void setRestTemplate(OAuth2RestOperations restTemplate) {
    this.restTemplate = restTemplate;
}

private QuoteWorkflowResponse saveQuote(IQuoteRequest request) {
    RequestEntity<IQuoteRequest> requestEntity = RequestEntity.post(getPathToPurchaseUrl(request))
            .body(request);
    ResponseEntity<QuoteWorkflowResponse> responseEntity = restTemplate.exchange(requestEntity, QuoteWorkflowResponse.class);
    if (responseEntity.getStatusCode() != HttpStatus.OK) {
        handleError(responseEntity);
    }
    return responseEntity.getBody();
}

Это каким-то образом использует Barrer Токен, я извлек токен с помощью отладчика и проверил его в почтальоне, и он работает.

Мой вопрос здесь, почему restTemplate.exchange вызывает исключение ResourceAccessException? что это значит ? и как я могу это исправить?

Исключение это бросает:

org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://somehost/aabb/sales/quote": stream is closed; nested exception is java.io.IOException: stream is closed

1 Ответ

0 голосов
/ 02 апреля 2020

Благодаря @MrFoll я добавил это в мой applicationaion.yml

logging:
level:
    org:
      springframework:
                    web:
                      client:
                        RestTemplate: "DEBUG"

и исправил проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...