0

Здравствуйте, у меня возникла проблема с настройкой таймаута соединения. Я использую WebServiceTemplate и имеет 1 messageSender (CommonsHttpMessageSender). Но можно ли установить разные таймауты соединений для каждого URI (конечных точек)?Как установить различные таймауты для разных URI при использовании WebServiceTemplate и CommonsHttpMessageSender?

С уважением ...

public Message sendRequest(OutgoingRequest message, MessageHeaders headers, 
         EndpointInfoProvider endpointInfoProvider, 
         WebServiceMessageCallback requestCallback){ 
    Assert.notNull(endpointInfoProvider, "Destination provider is required!"); 
    final Credentials credentials = endpointInfoProvider.getCredentials(); 
    URI destinationUri = endpointInfoProvider.getDestination(); 
    for (WebServiceMessageSender messageSender : webServiceTemplate.getMessageSenders()) { 
     if (messageSender instanceof CommonsHttpMessageSender) { 
      HttpClient httpClient = ((CommonsHttpMessageSender) messageSender).getHttpClient(); 
      httpClient.getState().setCredentials(
        new AuthScope(destinationUri.getHost(), 
          destinationUri.getPort(), AuthScope.ANY_REALM, 
          AuthScope.ANY_SCHEME), credentials 
      ); 
      httpClient.getParams().setAuthenticationPreemptive(true); 
      ((CommonsHttpMessageSender) messageSender) 
        .setConnectionTimeout(endpointInfoProvider 
          .getTimeOutDuration()); 
     } 
    } 
    webServiceTemplate.setDestinationProvider(endpointInfoProvider); 
    //........ 
} 

ответ

0

Spring WS не поддерживает различные тайм-ауты для различных URI, и не планирует добавлять такую ​​функциональность. Учитывая, что ваш вопрос связан с WebServiceTemplate, вы можете легко настроить несколько шаблонов с разными тайм-аутами и использовать их по своему усмотрению.

+0

Благодарим вас за ответ. Является ли настройка нескольких сообщений для одного webServiceTemplate, также для этой цели? – Jemo