`
kfcman
  • 浏览: 397010 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

设置CXF的WebService客户端超时时长

    博客分类:
  • java
 
阅读更多

在使用WebService时,我们通常都会在客户端中设置请求超时的限制,以避免长时间的去连接不可用的服务器。在CXF的环境下,客户端可通过两个属性配置超时限制:

  • ConnectionTimeout - WebService以TCP连接为基础,这个属性可以理解为TCP握手时的时间设置,超过设置的时间就认为是连接超时.以毫秒为单位,默认是30000毫秒,即30秒。
  • ReceiveTimeout - 这个属性是发送WebService的请求后等待响应的时间,超过设置的时长就认为是响应超时.以毫秒为单位,默认是60000毫秒,即60秒.

   这里可通过两种方式对客户端进行配置:
   一、在spring的配置文件中进行设置。

  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>      
  2.     < beans   xmlns = "http://www.springframework.org/schema/beans"      
  3.          xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"      
  4.          xmlns:jee = "http://www.springframework.org/schema/jee"      
  5.          xmlns:jaxws = "http://cxf.apache.org/jaxws"      
  6.          xmlns:http-conf = "http://cxf.apache.org/transports/http/configuration"       
  7.          xsi:schemaLocation ="http://www.springframework.org/schema/beans    
  8.              http://www.springframework.org/schema/beans/spring-beans-2.0.xsd     
  9.              http://www.springframework.org/schema/jee    
  10.              http://www.springframework.org/schema/jee/spring-jee-2.0.xsd     
  11.              http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd     
  12.              http://cxf.apache.org/transports/http/configuration    
  13.              http://cxf.apache.org/schemas/configuration/http-conf.xsd " >      
  14.         < http-conf:conduit   name = "{WSDL Namespace}portName.http-conduit" >       
  15.            < http-conf:client   ConnectionTimeout = "10000"   ReceiveTimeout = "20000"/>      
  16.         </ http-conf:conduit >       
  17.     </ beans >   

   这里需要注意的有几个地方:  
   1、需要指定http-conf名称空间:xmlns:http-conf=http://cxf.apache.org/transports/http/configuration。
   2、指定模式位置: http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd。
   3、http-conf:conduit中的name属性,指定设置生效的服务。name属性由service的namespace、WSDL中的 port name和".http-conduit"组成,如{http://apache.org/hello_world}HelloWorld.http- conduit。如果将name属性设置为“*.http-conduit”,则会对所有服务生效。


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

  1. Client client = ClientProxy.getClient(port);   
  2. HTTPConduit http = (HTTPConduit) client.getConduit();   
  3. HTTPClientPolicy httpClientPolicy =  new  HTTPClientPolicy();   
  4. httpClientPolicy.setConnectionTimeout( 36000 );   
  5. httpClientPolicy.setAllowChunking( false );   
  6. httpClientPolicy.setReceiveTimeout( 32000 );   
  7. http.setClient(httpClientPolicy);  
另:也可以对服务器端进行设置spring代码如下:
    <!-- 在服务器端设置响应超时限制,现在使用的是默认值30秒 -->
    <http-conf:destination name="*.http-conduit">
        <http-conf:server ReceiveTimeout="30000" />
    </http-conf:destination>
 
★更详细的配置请参考CXF官方文档:  
  
http://cwiki.apache.org/CXF20DOC/client-http-transport-including-ssl-support.html  
分享到:
评论

相关推荐

    cxf 开发webservice客户端

    本篇文章将详细探讨如何利用CXF框架开发一个Web服务客户端,以及如何进行测试。 一、CXF简介 CXF全称CXF CXF (Continued eXtensible Framework),它是一个Java框架,提供了创建和消费Web服务的能力。CXF支持WS-*...

    Java cxf开发webservice,分别有客户端和服务端

    2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...

    CXF动态webservice客户端demo

    这个"CXF动态webservice客户端demo"是为了演示如何使用CXF库创建一个动态调用Web服务接口的客户端应用程序。 首先,我们需要了解Web服务的基本概念。Web服务基于SOAP(Simple Object Access Protocol)协议,通过...

    使用cxf wsdl2java生成webservice客户端

    使用cxf wsdl2java生成webservice客户端命令

    WebService开发客户端 cxf方式

    本篇文章将详细探讨如何使用CXF框架来开发WebService客户端。 一、CXF简介 CXF是一个开源的Java框架,它支持构建和部署SOAP(简单对象访问协议)和RESTful(Representational State Transfer)Web服务。CXF提供了...

    springboot整合CXF发布webservice和客户端调用

    - 对于客户端调用,可以使用CXF的`JaxWsProxyFactoryBean`创建服务代理对象,然后调用其方法进行服务调用。 4. **项目结构** - `.classpath`和`.project`是Eclipse IDE的项目配置文件。 - `pom.xml`是Maven的...

    cxf webService客户端

    在文件列表中的"WebServiceClient"可能是一个示例项目,包含了创建和运行CXF Web服务客户端的源代码和配置文件。通过分析这个项目,你可以更好地理解如何在实际开发中应用上述概念。 总之,CXF为Java开发者提供了一...

    CXF 一个完整的webService(整合客户端和服务端)

    - **客户端代理**:CXF自动生成客户端代码,方便调用服务。 **2. 创建Web服务端** 在CXF中,服务端的开发通常涉及以下步骤: 1. 定义服务接口:使用Java接口定义服务方法。 2. 实现服务接口:编写具体的业务逻辑...

    WebService客户端

    WebService客户端是基于Web服务技术的一种应用程序,它允许不同的系统之间通过互联网进行通信和交互。在分布式计算环境中,WebService客户端扮演着关键角色,使得各种应用程序能够跨平台、跨语言地共享数据和服务。 ...

    cxf开发webservice客户端和服务器端文档

    cxf开发webservice客户端和服务器端 cxf(Apache CXF)是一款开源的WebService框架,用于开发webservice客户端和服务器端。它提供了许多有用的功能,如自动生成服务桩、客户调用桩和WSDL文档等,使得开发webservice...

    cxf生成webservice客户端

    在标题和描述中提到的“cxf生成webservice客户端”是指利用CXF的工具从WSDL文件自动生成Java客户端代码,以便于调用Web服务。 生成Web服务客户端的步骤如下: 1. **获取WSDL文件**:Web服务通常会公开一个WSDL文件...

    cxf的webservice的客户端代码

    在这个“cxf的webservice的客户端代码”主题中,我们将深入探讨如何使用CXF框架来构建一个能够与Web服务交互的客户端。 首先,创建CXF Web服务客户端的核心在于理解服务代理的生成。CXF提供了WSDL2Java工具,可以从...

    CXF作为客户端调用webService的demo

    用CXF作为客户端调用webService的demo:本人亲测可用,eclipse工程项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。

    CXF开发webservice客户端

    ### CXF 开发 WebService 客户端详细指南 #### 一、概述 Apache CXF 是一个开源项目,提供了一套强大的工具集用于构建和消费基于 SOAP 和 REST 的 Web 服务。本文档将详细介绍如何使用 Apache CXF 2.2.6 和 Spring...

    使用cxf和spring开发基于https的webservice服务端以及客户端样例

    客户端开发相对简单,它通过CXF的WSClientAPI动态生成代理对象,调用远程服务。首先,我们需要设置HTTPS的信任管理器,信任服务端的证书。然后,通过JAX-WS的`Service`类和WSDL URL创建服务代理,并获取业务接口的...

    webservice的cxf框架客户端调用所需jar包

    CXF框架是Apache组织开发的一款开源的Web服务框架,它支持SOAP、RESTful等多种Web服务标准,同时也提供了客户端和服务端的实现。在使用CXF框架进行Web服务客户端调用时,需要依赖一系列的JAR包来确保功能的正常运行...

    cxf开发webservice客户端

    本篇文章将详细讲解如何利用CXF来开发一个Webservice客户端,我们将探讨CXF的核心概念、配置过程以及客户端的创建步骤。 1. **CXF概述** Apache CXF是一个强大的Web服务框架,它支持多种Web服务规范,如SOAP、...

    Java webservice cxf客户端调用demo和服务端

    Java WebService CXF客户端调用和服务端的实现是企业级应用程序中常见的通信方式,它基于标准的SOAP(Simple Object Access Protocol)协议,提供了一种在分布式环境中交换信息的方法。CXF是一个开源框架,它简化了...

    CXF webservice 动态地址客户端相关代码和jar包

    以下是对CXF Webservice动态地址客户端相关知识点的详细解释: 1. **CXF客户端API**:CXF提供了两种主要的客户端API,即JAX-WS(Java API for XML Web Services)和JAX-RS(Java API for RESTful Web Services)。...

Global site tag (gtag.js) - Google Analytics