我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SocketTimeoutException:Read timed out问题解决org.apache.cxf.interceptor.Fault:Could not receive Message

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SocketTimeoutException:Read timed out问题解决org.apache.cxf.interceptor.Fault:Could not receive Message


问题描述

利用WebService给其它服务器地址发送请求时,遇到了一个报错:org.apache.cxf.interceptor.Fault:Could not receive Message。控制台上显示:java.net.SocketTimeoutException:Read timed out。搜了一下发现网上大部分是分享org.apache.cxf.interceptor.Fault:Could not send Message。发送问题的,很少有关于接收报错的。本文就是介绍如何解决这个问题的。


一、WebService是什么?

简单说:WebService可以将你的服务(一段代码)发布到互联网上让别人去调用,也可以调用别人机器上发布的WebService,就像使用自己的代码一样.

详细介绍: WebService详解

二、问题解决

1.问题分析

以下内容来自: CXF客户端配置请求超时限制

在Spring+CXF的WebService环境下,客户端有两个时间属性是可配置的,分别是ConnectionTimeout和ReceiveTimeout.
ConnectionTimeout–WebService以TCP连接为基础,这个属性可以理解为tcp的握手时的时间设置,超过设置的时间长则认为是连接超时.以毫秒为单位,默认是30000毫秒,即30秒.
ReceiveTimeout – 这个属性是发送WebService的请求后等待响应的时间,超过设置的时长就认为是响应超时.以毫秒为单位,默认是60000毫秒,即60秒.
出现java.net.SocketTimeoutException:Read timed out。说明发送或接收时等待的时间过长,超过了限制就会报错。

2.解决办法

(1)延长响应时间限制

可能出现以下几种情况
(1)有时候网络会存在波动情况
(2)传输的数据量过大
(3)服务器响应时间过长
因此,我们可以适当延长请求等待响应时间,来解决以上问题

Java代码如下:

Client client = ClientProxy.getClient(port);     HTTPConduit http = (HTTPConduit) client.getConduit();     HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();//均以毫秒为单位     httpClientPolicy.setConnectionTimeout(60000);     httpClientPolicy.setAllowChunking(false);     httpClientPolicy.setReceiveTimeout(120000);     http.setClient(httpClientPolicy);

(2)联系服务器使用方解决

我遇到的报错是:org.apache.cxf.interceptor.Fault:Could not receive Message显示无法接收信息,不是无法发送信息。我这边报错了联系了服务器使用方,他们那边显示已经接收到了我发送的请求,是他们的服务器没有响应我这边的服务器才会报错。他们在调试后,让我重新发送请求,我尝试发送请求后就不再报org.apache.cxf.interceptor.Fault:Could not receive Message问题了。因此,出现这个问题的小伙伴可以尝试联系服务器使用方解决。
当然,联系前要确定:
(1)自己发送的参数信息没有问题,符合接口规范要求
(2)请求已经发送出去(关键)。要确保自己的请求发送出去了,是他们的响应问题。

总结

我遇到的是一个很小众的问题,大多数开发者应该遇到的是发不出去请求,而我遇到的是接收不到请求。
我这次分享的经验仅供大家参考,希望对大家有所帮助!

来源地址:https://blog.csdn.net/qq_46119575/article/details/128506936

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SocketTimeoutException:Read timed out问题解决org.apache.cxf.interceptor.Fault:Could not receive Message

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SocketTimeoutException:Read timed out问题解决org.apache.cxf.interceptor.Fault:Could not receive Message

java.net.SocketTimeoutException:Read timed out问题解决 问题描述一、WebService是什么?二、问题解决1.问题分析2.解决办法(1)延长响应时间限制(2)联系服务器使用方解决
2023-08-19

MobaXterm连接出现 Network error: Connection timed out 问题解决

MobaXterm连接出现 Network error: Connection timed out: 接前文:CentOS安装, 点此查看文章,安装之后的SSH连接: 解决思路如下: 1、检查虚拟机端是否安装ssh 一般情况是可以自动安装
2023-08-21

编程热搜

目录