HTTP / 1.1 имеет поддержку активности соединения, но сервер может решить закрыть его после нескольких запросов или не поддерживает поддержку активности
Самый простой способ проверить это использовать tcpdump или wireshark и проверитьдля SYN [S] флагов.Это новые подключения.
Я использую следующее и на J2SE 1.6 jdk он не создавал новых сокетов для нескольких запросов.Сервер не отправил заголовок Connection: Keep-Alive, но все равно соединения остались живыми.
Конфигурация компонента :
<bean id="wsHttpClient" factory-bean="customHttpClient"
factory-method="getHttpClient" />
<bean id="messageSender"
class="org.springframework.ws.transport.http.CommonsHttpMessageSender"
p:httpClient-ref="wsHttpClient" />
Java Code :
import org.apache.commons.httpclient.*;
import org.springframework.stereotype.*;
@Component public class CustomHttpClient {
private final HttpClient httpClient;
public CustomHttpClient() {
httpClient = new HttpClient(new MultiThreadedHttpConnectionManager());
httpClient.getParams().setParameter("http.protocol.content-charset",
"UTF-8");
httpClient.getHttpConnectionManager().getParams()
.setConnectionTimeout(60000);
httpClient.getHttpConnectionManager().getParams().setSoTimeout(60000);
httpClient.setHostConfiguration(new HostConfiguration());
}
public HttpClient getHttpClient() {
return httpClient;
}
}