急:使用webservice方式跟第三方通讯时超时【java.net.ConnectException…
第3个异常是java.net.SocketException: Socket is closed,该异常在客户端和服务器均可能发生。异常的原因是己方主动关闭了连接后(调用了Socket的close方法)再对网络连接进行读写操作。
先把连接超时的时间设置长一点!抛异常处理时,空处理异常,继续调用连接方法,不过,服务器一般都有连接超时的时间的,超过时间连接不上,就会自动中断客户端的请求。
在线程A中调用WebService之前启动线程B,成功返回后设定responseOK=true。线程B启动后计时,如果responseOK==true则停止计时,如果计时超过20秒,则终止线程A并返回错误信息。
如果可以的话,调用的时候,在服务端上面打断点。这样就知道是真的超时,还是没连接上。不能打断点,就在A上面,先测试一下IP端口是不是通的。
这也是一个观察 CXF 中间如何处理一个例外情况的分析方法。实在不行就找 CXF 的源码或反编译这个异常 Stack Trace 中提到的那几个类猜测一下可能的原因。
wsdl (其中:mywebservices是你的项目名,services是WEB.XML配置的路径,Long.jws是在WSDD文件中配置的服务名)有没有结果出来。如果没有出现如类似于XML文件的展示,则是你的.net服务发布失败。
Java调用webservice接口,一台客户端成功,一台客户端失败?
客户端调用方式错误:检查客户端调用webservice服务的方式是否正确,如SOAP或REST等。服务端配置错误:检查webservice服务端的配置是否正确,如端口、地址、URL等。
导致逻辑报错。还有一种就是同一个接口中有读有写的可能出现这种状况。可以线程等待下,或者改造下接口方法来解决。其实我不太理解你为什么联系两次调用,可以具体的说说明下,找找其他的解决方案。
一般来说这是个不可恢复的错误,也就是说你重试多少次都是这个错误。
看ping通要连webServiceip或者浏览器访问址看能否现xml页面报错般网络通或端口问题。
在线程A中调用WebService之前启动线程B,成功返回后设定responseOK=true。线程B启动后计时,如果responseOK==true则停止计时,如果计时超过20秒,则终止线程A并返回错误信息。
webservice超时设置
其中IDLE_TIME的值就是设置的空闲超时时间。
考虑到超时重传,需要超过一次网络重传的时间,以免因网络临时丢包造成连锁反映。 参考经验,payload在4个数据包之内,超时可以设置为3秒 问题三:e *** 接口的响应时间,怎么调整 webservice平均响应时间为0.2s以内为合适。
Timeout 300 修改完参数后,需要重启Oracle EBS HTTP Server或者OC4J Service才能生效。