我使用以下代码将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消息时未指定soap版本,则会失败。
答案 0 :(得分:0)
因为SOAP使用下面的jave.net.URLConnection,所以可以设置连接超时的系统参数 对SOAP也有效。您可以设置以下参数
-Dsun.net.client.defaultConnectTimeout =<超时>
-Dsun.rmi.transport.proxy.connectTimeout =<超时>