我正在使用以下代码将SOAP请求发送到端点。由于我们在从服务器获取响应时遇到了一些延迟,因此我想在代码中设置连接超时。

码:

SOAPConnectionFactory soapConnectionFactory =SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
MimeHeaders header = new MimeHeaders();
header.addHeader("Content-type", "application/soap+xml;charset=UTF-8");
header.addHeader("SOAPAction", soapAction);
InputStream is = new ByteArrayInputStream(reqXML.getBytes());
SOAPMessage request = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage(header, is);
SOAPMessage soapResponse = soapConnection.call(request, endPoint);


有人可以帮助我修改代码以添加超时值吗?

我已经通过线程Setting socket read timeout with javax.xml.soap.SOAPConnection升至同一问题。如果在创建肥皂消息时未指定肥皂版本,则会失败,因此无法使用此处提供的解决方案。

最佳答案

由于SOAP在下面使用jave.net.URLConnection,因此您可以使用以下命令设置连接超时的系统参数:
对SOAP同样有效。您可以设置以下参数

-Dsun.net.client.defaultConnectTimeout =

-Dsun.rmi.transport.proxy.connectTimeout =

09-12 17:35