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

这篇具有很好参考价值的文章主要介绍了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://www.toymoban.com/news/detail-446593.html

到了这里,关于SocketTimeoutException:Read timed out问题解决org.apache.cxf.interceptor.Fault:Could not receive Message的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决Read timed out和connect timed out的问题

    如果在新建Android项目时报错: Read timed out或者connect timed out 一定可以解决问题的办法如下: 第一步:打开项目下gradle中的第二个.properties文件,找到这个文件的下载路径,、一般卡顿是因为下载这个文件时网速较慢或者是因为在国外的原因。 第二步:按照文档中的路径,选

    2024年02月06日
    浏览(30)
  • java.net.SocketTimeoutException: connect timed out 解决方案

    使用Pull解析XML,使用真机调试的时候遇到两个报错: 找了很多资料,终于解决这个问题! java.net.SocketTimeoutException: connect timed out 解决方案: 1.关闭防火墙 2.延长请求时间 java.net.ConnectException: Failed to connect to 解决方案: 1.创建 res/xml/network_security_config.xml 在res目录下找到xml目

    2024年02月11日
    浏览(24)
  • android studio的read timed out或connect timed的问题解决

    (直接看方法到文末) 网上相关的方法很多,我在尝试多个博客,包括: Android Studio新建项目之后直接出现报错 Android studio报错:Plugin [id: ‘com.android.application‘, version: ‘7.2.0‘等 包含的方法有: 修改gradle-wrapper.properties的地址为 setting里面设置 但是这样等的方法最终都会出

    2023年04月16日
    浏览(17)
  • 【报错解决】anaconda: Read timed out.

    在anaconda的虚拟环境中用pip或conda下载安装包时,遇到如下报错,具体报错内容如下所示: 造成以上报错的原因是:网络连接出现问题,无法下载。 换一个源进行下载,比如使用清华源、豆瓣源等。我这里是使用百度镜像下载的,速度较快,而且也不会报错,几分钟就下载完

    2024年01月24日
    浏览(25)
  • 解决:Android Studio ERROR: Read timed out

    Android Studio ERROR: Read timed out 在settings.gradle添加阿里云仓库 最后一步,点击上面的绿色小锤子或者Build加载一下就可以了。加载过程需要很久,我加载了大约一个小时左右,需要耐心等待加载完成。 Androidstudio的版本默认是用的mavenCentral()的库,但是它是外国仓库镜像,所以有

    2024年02月07日
    浏览(25)
  • 【快速解决】Android Studio ERROR: Read timed out

    每当我们升级Android Studio版本后,新建一个安卓项目总是会出现Read timed out。我当时网上查阅太多,总是找不到好的解决办法。今天终于找到解决方法。 一共两个方法: 1、我们打开gradle-wrapper.properties文件。如下图所示: 红线标的网址,是会下载超时的,故解决方法是将其修

    2024年01月16日
    浏览(44)
  • 完美解决 AndroidStudio Gradle 下载jar包慢Android Studio : Read timed out和connect timed out的解决方法

    在项目当中找settings.gradle.kts文件将其 找到上图的文件,按照上图进行将下面内容进行替换 新版本 老版本 mavenCentral() 如果不知是什么版本就挨个试一下

    2024年02月05日
    浏览(24)
  • hive read time out

    hive-jdbc版本:2.3.9 报错信息如下: 问题定位:客户端的socket连接读超时,默认超时时间为30秒,需要在应用端增大读超时时间。 解决方案: 1)hiveConnection在使用socket连接时,设置了超时时间为30秒,超时时间较短,在运行稍微复杂点的SQL时,就会导致超时。如下图。    2) 

    2024年02月15日
    浏览(21)
  • flutter项目下载gradle出现Connect timed out或Read timed out

    当出现Connect timed out或Read timed out这有两种情况的时候首先检查自己的网络情况    如果网络没有问题就进入项目的gradle文件的gradle-wrapper.properties中可以看到默认的 这个地址是需要魔法上网才能进行访问 。 所以我们可以切换为腾讯的国内镜像地址进行下载 腾讯的国内镜像:

    2024年01月19日
    浏览(26)
  • jmeter返回请求Read timed out

    问题现象: 整个接口请求响应时间5020ms 如果已经对比过jmeter和postman请求的所有参数:内容编码、端口号、请求协议http/https、请求头等以上参数都一致的情况下,可以尝试设置接口的请求响应的超时时间,如下: 超时说明: 连接1000ms,意思为等待服务器连接1000ms,不管此时

    2024年02月15日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包