0

안녕하세요 연결 시간 제한을 설정하는 데 문제가 있습니다. WebServiceTemplate을 사용하며 1 개의 messageSender (CommonsHttpMessageSender)가 있습니다. 그러나 각 URI (끝점)마다 다른 연결 시간 제한을 설정할 수 있습니까? 감사합니다 WebServiceTemplate 및 CommonsHttpMessageSender를 사용하는 동안 다른 URI에 대해 다른 시간 제한을 설정하는 방법은 무엇입니까?

...

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

봄 WS는 다른 URI에 대해 서로 다른 시간 제한을 지원하지 않으며 이러한 기능을 추가 할 계획하지 않습니다. 귀하의 질문에 WebServiceTemplate이 포함되어 있다면, 다른 시간 제한을 가진 여러 템플릿을 쉽게 구성하고 원하는대로 사용할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 하나의 webServiceTemplate에 대해 여러 messageSender를 구성하고 있습니까?이 목적을위한 방법이기도합니다. – Jemo