在用cxf  开发webservice应用时,客户端老报

java.net.SocketTimeoutException: Read timed out

原因为连接超时,google 参考链接

Spring下设置CXF的WebService客户端超时时长 
http://ajava.org/course/open/16514.html 
https://cwiki.apache.org/CXF20DOC/client-http-transport-including-ssl-support.html   (官方)

在Spring+CXF的WebService环境下,客户端有两个时间属性是可配置的,分别是ConnectionTimeout和ReceiveTimeout.   
ConnectionTimeout--WebService以TCP连接为基础,这个属性可以理解为tcp的握手时的时间设置,超过设置的时间长则认为是连接超时.以毫秒为单位,默认是30000毫秒,即30秒.  
  
ReceiveTimeout -- 这个属性是发送WebService的请求后等待响应的时间,超过设置的时长就认为是响应超时.以毫秒为单位,默认是60000毫秒,即60秒.

一、在spring的配置文件中进行设置(客户端)。

Xml代码  
<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:jee="http://www.springframework.org/schema/jee"  
    xmlns:jaxws="http://cxf.apache.org/jaxws"  
    xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"   
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
           http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd  
           http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd  
           http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd ">  
        <http-conf:conduit name="{http://impl.service.product.super.com/}ProjectService.http-conduit">   
        <http-conf:client ConnectionTimeout="10000" ReceiveTimeout="20000"/>  
    </http-conf:conduit>   
</beans>   
这里需要注意的有几个地方:   
需要指定http-conf名称空间 xmlns:http-conf =http://cxf.apache.org/transports/http/configuration   
指定模式位置:  http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd    
http-conf:conduit中的name属性,指定设置生效的服务,如例子中,只对服务名为{http://impl.service.product.sww.com/}ProjectService的服务生效.   
使用下面的设置则会对所有服务生效   
< http-conf:conduit   name = "*.http-conduit" >          
</ http-conf:conduit >

二、通过java代码进行设置。

Java代码  
Client client = ClientProxy.getClient(port);      
HTTPConduit http = (HTTPConduit) client.getConduit();      
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();      
httpClientPolicy.setConnectionTimeout(36000);      
httpClientPolicy.setAllowChunking(false);      
httpClientPolicy.setReceiveTimeout(32000);      
http.setClient(httpClientPolicy);    
另外,WSDL中的endpoint的地址不一定是有效的,为避免客户端请求使用该地址,我们在请求前应通过以下方式强行设置为可用的服务地址。 
  ((BindingProvider) port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,serviceUrl);

CXF客户端配置请求超时限制-SocketTimeoutException(Spring配置文件中配置和通过代码进行配置)相关推荐

  1. 通过Spring配置文件中bean中的property赋值

    基本数据类型赋值-通过spring配置文件中bean中的property 扩展-以此方式可以通过配置为连接数据的属性赋值 1.如果是基本数据类型,可以通过setter方法为对象中的属性设置初始值,应用 ...

  2. spring配置文件中分别使用多个properties文件

    spring配置文件中分别使用多个properties文件 在使用spring时,有时候需要为了模块配置方便有时候需要针对不同的模块建立不同的applicationContext的配置文件,然后在对应 ...

  3. Spring依赖注入的方式、类型、Bean的作用域、自动注入、在Spring配置文件中引入属性文件...

    1.Spring依赖注入的方式 通过set方法完成依赖注入 通过构造方法完成依赖注入 2.依赖注入的类型 基本数据类型和字符串 使用value属性 如果是指向另一个对象的引入 使用ref属性 User ...

  4. Spring配置文件中引入properties文件

    jdbc.properties文件中有信息如下: username=root url=jdbc:mysql://localhost:3306/qw?characterEncoding=utf8 dri ...

  5. spring配置文件中引入其他的配置文件

    spring配置文件中,如何引入其他的配置文件,如下: <import resource="abc/abc.xml">

  6. CXF客户端配置请求超时限制

    在用cxf  开发webservice应用时,客户端老报 java.net.SocketTimeoutException: Read timed out 原因为连接超时,google 参考链接 Spr ...

  7. java 方式配置ssm,关于SSM以及Spring boot中对于Spring MVC配置的问题

    SSM中 Spring MVC配置 传统的web.xml配置 web.xml contextConfigLocation classpath*:applicationContext.xml org.s ...

  8. Spring Boot中使用MongoDB的连接池配置

    因为今天开发遇到了性能问题,可能与MongoDB的连接有关,所以稍稍深入看了一下,正好搜到原来有人写过这篇相关的内容,所以转载过来.回头有时间可以写个扩展到SpringForAll里,主体思路还是一样 ...

  9. 基于Spring可扩展Schema提供自定义配置支持(spring配置文件中 配置标签支持)

    2019独角兽企业重金招聘Python工程师标准>>> spring使用了这么长时间, 你真的了解spring bean加载的机制吗? 这个是我们项目中最常见的配置文件中的内容配置, ...

最新文章

  1. 北京大学 AdaMod优化器 孙栩
  2. java I/O思维导图
  3. java IO(输入输出) 对象的序列化和反序列化
  4. 高考完?入门级的开源项目带你开启编程之旅
  5. Axure tabstrip and different control
  6. 13点建议顺利通过JAVA面试【转载】
  7. 你真的懂js获取可视区宽高吗
  8. C语言小游戏 ——俄罗斯方块
  9. CCF201509-4 高速公路(100分)
  10. JS魔法堂之实战:纯前端的图片预览
  11. CEC2018:动态多目标测试函数DF1~DF5的PS及PF
  12. Flask学习笔记之:jinja2变量过滤器以及自定义过滤器
  13. 由于删掉注册表中\Hkey_classes_root\lnkfile下的IsShortcut文件导致右键我的电脑的管理出现的问题
  14. 制造业原材料价格上涨 安防设备涨还是不涨?
  15. 浙江工商大学计算机考试科目,浙江工商大学(专业学位)计算机技术研究生考试科目和考研参考书目...
  16. Excel自定义格式参数
  17. emmc linux 识别分区_Linux和Uboot下eMMC boot分区读写
  18. LPDDR5 JEDEC
  19. 机器学习 —— 简单模型的构建
  20. 在通用计算机系统中系统软件,计算机系统中系统软件的核心是什么

热门文章

  1. MATLAB机器学习系列-9:决策树和随机森林的原理及其例子代码实现
  2. wxWidgets:wxFont实例
  3. wxWidgets:wxJoystickEvent类用法
  4. boost::spirit模块实现一个类似于 XML 的小型解析器的测试程序
  5. boost::partial_sort相关的测试程序
  6. boost::multiprecision模块debug_adaptor相关的测试程序
  7. GDCM:gdcm::ImageReader的测试程序
  8. boost::container模块实现抛出异常
  9. Boost::context模块fiber的回声测试程序
  10. Boost:传输文件的测试程序