Получение URL-адреса запроса SOAP в методе handleResponse в ClientInterceptor - PullRequest
0 голосов
/ 24 июня 2019

Я использую весеннюю загрузку. Я написал ClientInterceptor для веб-службы SOAP и хотел бы зарегистрировать URL-адрес, на который я отправляю свой запрос, и я хотел бы сделать это в методе handleResponse. Однако я не мог найти способ сделать это. Является ли это возможным? Любая помощь будет великолепна.

public class SoapClientHttpRequestInterceptor implements ClientInterceptor {

@Override
    public boolean handleResponse(MessageContext messageContext) throws WebServiceClientException {
        // I would like to get the URL and log it here. 

    }

}

Способ создания шаблона restTemplate

@Bean
@Qualifier("testRestTemplate")
public RestTemplate testRestTemplate() {

    SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
    requestFactory.setOutputStreaming(false);
    ClientHttpRequestFactory factory = new BufferingClientHttpRequestFactory(requestFactory);
    RestTemplate restTemplate = new RestTemplate(factory);
    restTemplate.setInterceptors(Collections.singletonList(restClientHttpRequestInterceptor));
    restTemplate.setErrorHandler(testErrorHandler);
    restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));
    return restTemplate;
}

1 Ответ

0 голосов
/ 08 июля 2019

Вы можете сделать это в вашем методе handleResponse:

TransportContext context = TransportContextHolder.getTransportContext();
context.getConnection().getUri().toString()

Я надеюсь, что это поможет вам

...