webservice客户端设置连接超时时间失效
(java语言)使用webservice开发客户端,并设置了超时时间为5秒,代码如下:
Map<String, Object> ctxt = ((BindingProvider) apps).getRequestContext();
ctxt.put("com.sun.xml.internal.ws.connect.timeout", 5*1000);
ctxt.put("com.sun.xml.internal.ws.request.timeout", 5*1000);
首先将服务端关闭,然后运行客户端向服务端发起请求,按照我的理解,客户端应该会在第5s时报连接超时错误,然而客户端却是在20s的时候才报连接超时错误,感觉上面的连接超时时间设置失效了,求大神答疑解惑啊,是我对连接超时时间理解错了吗
20秒时报的异常如下:
javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://192.168.49.110:8080/TestGeneAxisServer/services/appsystemstatusHttpPort?wsdl. It failed with:
Got Connection timed out: connect while opening stream from http://192.168.49.110:8080/TestGeneAxisServer/services/appsystemstatusHttpPort?wsdl.
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(Unknown Source)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(Unknown Source)
at javax.xml.ws.Service.<init>(Unknown Source)
at com.xaec.Appsystemstatus.<init>(Appsystemstatus.java:50)
at koal.kmail.assistant.tool.sendSysStaus.SystemStatusUtil.sendSystemStatusToPortal(SystemStatusUtil.java:34)
at koal.kmail.assistant.tool.sendSysStaus.SystemStatusUtil.main(SystemStatusUtil.java:26)
Caused by: java.io.IOException: Got Connection timed out: connect while opening stream from http://192.168.49.110:8080/TestGeneAxisServer/services/appsystemstatusHttpPort?wsdl
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.createReader(Unknown Source)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(Unknown Source)
... 10 more
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
... 12 more
另外:webservice客户端中间代码室友jdk自带的命令生成的
Map<String, Object> ctxt = ((BindingProvider) apps).getRequestContext();
ctxt.put("com.sun.xml.internal.ws.connect.timeout", 5*1000);
ctxt.put("com.sun.xml.internal.ws.request.timeout", 5*1000);
首先将服务端关闭,然后运行客户端向服务端发起请求,按照我的理解,客户端应该会在第5s时报连接超时错误,然而客户端却是在20s的时候才报连接超时错误,感觉上面的连接超时时间设置失效了,求大神答疑解惑啊,是我对连接超时时间理解错了吗
20秒时报的异常如下:
javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://192.168.49.110:8080/TestGeneAxisServer/services/appsystemstatusHttpPort?wsdl. It failed with:
Got Connection timed out: connect while opening stream from http://192.168.49.110:8080/TestGeneAxisServer/services/appsystemstatusHttpPort?wsdl.
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(Unknown Source)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(Unknown Source)
at javax.xml.ws.Service.<init>(Unknown Source)
at com.xaec.Appsystemstatus.<init>(Appsystemstatus.java:50)
at koal.kmail.assistant.tool.sendSysStaus.SystemStatusUtil.sendSystemStatusToPortal(SystemStatusUtil.java:34)
at koal.kmail.assistant.tool.sendSysStaus.SystemStatusUtil.main(SystemStatusUtil.java:26)
Caused by: java.io.IOException: Got Connection timed out: connect while opening stream from http://192.168.49.110:8080/TestGeneAxisServer/services/appsystemstatusHttpPort?wsdl
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.createReader(Unknown Source)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(Unknown Source)
... 10 more
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
... 12 more
另外:webservice客户端中间代码室友jdk自带的命令生成的
...全文
相关推荐
Java高级架构必备知识点
不同层级的超时重试策略可能会有所不同:- **代理超时**:由负载均衡器或反向代理服务器执行的超时处理。- **容器超时**:容器级别的超时设置。- **前端超时**:浏览器或客户端发起的超时。
Dubbo面试题(2025最新版).docx
超时设置可以配置在服务端、客户端或者通过URL参数设置,服务调用超时会触发超时机制。
转:pb12 开发 webservice 注意事项
**连接管理和错误处理**: - 连接管理非常重要,特别是当客户端与WebService之间的连接需要频繁建立和断开时,应确保在每次连接结束后及时执行`disconnect`操作,以避免资源泄漏。
android调用WebService实例分析
"Android调用WebService实例教程"在Android开发中,由于官方SDK并未内置调用WebService的库,开发者需要依赖第三方库来实现这一功能。WebService作为一种跨平
短信验证码Webservice调用
- **时效性**:验证码应有有效时间限制,例如5分钟或10分钟,过期则失效,以防止恶意用户反复尝试。- **频率控制**:限制同一手机号在短时间内发送验证码的次数,避免骚扰用户或被恶意刷验证码。


