`
120153216
  • 浏览: 61758 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

CXF 定制超时配置

    博客分类:
  • cxf
阅读更多
1 客户端(在spring中配置超时):

如例:

view plaincopy to clipboardprint?
<beans   xmlns="http://www.springframework.org/schema/beans"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
            xsi:schemaLocation="http://cxf.apache.org/transports/http/configuration  
                http://cxf.apache.org/schemas/configuration/http-conf.xsd  
                http://www.springframework.org/schema/beans  
                http://www.springframework.org/schema/beans/spring-beans.xsd">
            <http-conf:conduit name="{http://apache.org/hello_world_soap_http}SoapPort.http-conduit">
                <http-conf:client ConnectionTimeout="30000" ReceiveTimeout="60000" />
            </http-conf:conduit>
        </beans>
首先要注意的事情是<http:conduit>的name属性。

这个name包含服务的命名空间,WSDL的端口(port)名--就是wsdl的<wsdl:port>name属性,以及".http-conduit".

就是下面这个模板:"{WSDL Namespace}portName.http-conduit". 注意:它是端口名称(port name),不是服务名称(service name)。

name值的另一个选择是"*.http-conduit",是URL的正则表达式。例:

<http:conduit name=".*">

</http:conduit>

在localhost:8080上为所有交互配置一个conduit. 在同一个服务端,如果你有多个客户端与不同的服务进行交互,这可能是最

简单的方法。

Namespace

这个元素用于配置一个HTTP客户端,它定义在命名空间:http://cxf.apache.org/transports/http /configuration.

它通常被称为使用前缀http-conf. 为了使用HTTP配置元素,你需要添加下面显示的一行到你的端点配置文件的

beans元素。此外,你还需要添加配置元素的命名空间到xsi : schemaLocaion属性。

例:HTTP 客户端配置命名空间

<beans ....

xmlns:http-conf="http://cxf.apache.org/transports/http/configuration

xsi:schemaLocation="...

http://cxf.apache.org/transports/http/configuration

http://cxf.apache.org/schemas/configuration/http-conf.xsd

...>

conduit元素

你使用http-conf:conduit元素和它的子元素配置一个HTTP客户端。 http-conf:conduit元素只有一个属性,name,

它指定对应到端点接口的WSDL port元素. 这个name属性的值是:prtQName.http-conduit.

例如,下面的代码显示http-conf : conduit元素将被用于为一个端点接口添加配置,它指定为wsdl片断

<port binding="widgetSOAPBinding" name="widgetSOAPPort">,如果端点接口的目标命名空间是:

例:http-conf:conduit Element

<http-conf:conduit name="{http://widgets/widgetvendor.net}widgetSOAPPort.http-conduit">

....

</http-conf:conduit>

也你能使用通配符来指定http:conduit,你要配置:

<http-conf:conduit name="*.http-conduit">

....

</http:conf:conduit>

http-conf:conduit元素有一些子元素,其中http-conf : client----- 指定http连接属性,如:超时,保持活动的请求,内容类型等。

这个是我们需要的。

这个http-conf:client元素有一些属性,定义超时的有两个:

ConnectionTimeout(连接超时)------ 指定的一个时间量,以毫秒为单位,客户端将在超时之前尝试建立连接。默认是

30000(30秒). 0 指定客户端将继续无限期地尝试打开一个连接。

ReceiveTimeout(接收超时)----- 指定的一个时间量,以毫秒为单位,客户端将在超时之前等待响应。默认是

60000(一分钟). 0 指定客户端将无限期等待。

2 客户端(在java代码直接控制超时配置)

首先你需要从代理对象或客户端得到HTTPConduit, 然后你能设置HTTPClientPolicy,AuthorizationPolicy,

ProxyAuthorizationPolicy,TLSClientParameters,和/或 HttpBasicAuthSupplier.

view plaincopy to clipboardprint? URL wsdl = getClass().getResource("wsdl/greeting.wsdl");  
SOAPservice service = new SOAPservice(wsdl,serviceName);  
Greeter greeter = service.getPort(portName,Greeter.class);   Client client = ClientProxy.getClient(greeter);  
HTTPConduit http = (HTTPConduit)client.getConduit();  
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();  
httpClientPolicy.setConnectionTimeout(36000);  
httpClientPolicy.setReceiveTimeout(32000);  
http.setClient(httpClientPolicy);   greeter.sayHi("Hello");
3 服务端(在spring中配置)

Namespace

如例(与client差不多,意思也一样):

<beans ...

xmlns:http-conf="http://cxf.apache.org/transports/http/configuration

xsi:schemaLocation="...

http://cxf.apache.org/transports/http/configuration

http://cxf.apache.org/schemas/configuration/http-conf.xsd

...>

destination元素

如例(与client差不多,意思也差不多)

....

<http-conf:destination name="{http://widgets/widgetvendor.net}widgetSOAPPort.http-destination>

......

</http-conf:destination>

http-conf:destination元素有个子元素:http-conf:server ------指定HTTP连接属性
<http-conf:server>有属性:ReceiveTimeout-----设置以毫秒为单位的时间长度,服务端在连接超时之前
尝试接收请求。默认是30000(30秒)。 指定服务器将不超时使用0 view plaincopy to clipboardprint?
<beans   xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
        xsi:schemaLocation="http://cxf.apache.org/transports/http/configuration  
            http://cxf.apache.org/schemas/configuration/http-conf.xsd  
            http://www.springframework.org/schema/beans  
            http://www.springframework.org/schema/beans/spring-beans.xsd">         <http-conf:destination name="{http://apache.org/hello_world_soap_http}SoapPort.http-destination">
            <http-conf:server     ReceiveTimeout="30000"/>
        </http-conf:destination>
    </beans>
 

 

分享到:
评论

相关推荐

    cxf超时设置

    "cxf超时设置"这个主题是关于如何在使用CXF框架时,对网络通信的超时时间进行配置,以优化服务的稳定性和性能。 首先,理解超时的概念至关重要。在计算机网络中,超时是指等待某个操作完成的时间限制。当这个时间...

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

    SpringBoot简化了Spring应用程序的初始设置和配置,通过自动配置和“起步依赖”(Starter POMs)使开发者可以快速启动项目。它内嵌了Tomcat或Jetty服务器,使得部署无需额外的容器。 2. **Apache CXF简介** ...

    cxf环境变量配置以及命令

    3. **设置 CXF_HOME**:设置环境变量 `CXF_HOME`,值应为 CXF 解压后的目录。 4. **更新 PATH 变量**:在系统的 `PATH` 环境变量中添加 `%CXF_HOME%/bin`,这样可以使得 CXF 的命令行工具可以在任何地方使用。 5. **...

    spring-cxf 日志记录配置.zip

    - 对于SLF4J,可以在配置文件中定制日期格式、线程名、日志级别等信息的输出格式。 - 对于Log4j,可以在`log4j.properties`中配置`PatternLayout`来定义输出格式。 6. **日志级别管理**: - 在开发阶段,通常会...

    apache-cxf-2.2.10安装包和如何配置到环境变量

    在本文中,我们将详细介绍如何安装和配置Apache CXF 2.2.10,并将其添加到系统的环境变量中。 首先,了解Apache CXF的基本概念至关重要。它是一个用于创建Web服务的工具,支持多种协议和标准,如SOAP、RESTful HTTP...

    使用CXF实现带header的soap服务

    3. **配置CXF**:在CXF的配置文件(如`cxf-servlet.xml`)中,设置服务发布地址和服务实现类。此外,可能还需要配置数据绑定和WS-Security等。 4. **处理HTTP头信息**:CXF提供了拦截器(Interceptor)机制,可以...

    cxf多数据源配置

    【标题】:“cxf多数据源配置” 在Java企业级应用开发中,有时我们需要处理来自多个数据源的数据,比如不同的数据库、API接口等。CXF(CXF: XFire + Codehaus XStream)是一个开源的Java框架,它主要用于构建和消费...

    cxf配置swagger2

    总的来说,"cxf配置swagger2"涉及到的步骤包括:添加依赖、创建Swagger配置类、配置Spring Boot应用扫描、以及在CXF服务中注册Swagger2 Feature。通过这些步骤,我们可以为CXF RESTful服务生成漂亮的文档并提供交互...

    cxf所需jar包(内含配置文件)

    "cxf所需jar包(内含配置文件)"这个压缩包,正如其名,提供了SpringMVC与CXF整合所需的依赖库以及配置文件,使得开发者能够更方便地在Spring环境中集成CXF来处理Web服务。 首先,让我们详细了解一下CXF框架。CXF...

    cxf实例的java类和配置文件

    - CXF特定配置:可能还会有如`cxf-servlet.xml`这样的配置文件,用于设置CXF的拦截器、行为和故障处理器等。 3. 运行流程: - 服务器启动时,Spring容器加载配置文件并创建服务实现类的实例。 - `jaxws:endpoint...

    WebServiceConfig java springboot利用Apache CXF创建webserice接口配置类

    webserviceApache CXF java springboot利用Apache CXF创建webserice接口 Apache CXF 核心架构是以BUS为核心,整合其他组件。 * Bus是CXF的主干, 为共享资源提供一个可...开发者也可以提供自己的配置文件来定制Bus。

    Spring+cxf配置接口+mybatis配置

    综上所述,"Spring+cxf配置接口+mybatis配置"这个项目可能是在构建一个集成了后端服务、Web服务接口和数据库操作的企业级应用。开发者需要理解这三个框架的基本原理和配置方式,才能有效地整合它们,实现高效、稳定...

    CXF 通过用户名和密码进行验证

    - **Spring XML配置**:在Spring配置文件中定义CXF客户端和服务端的安全策略,例如使用`&lt;cxf:bus&gt;`和`&lt;cxf:properties&gt;`元素。 - **WSDL-first方式**:在WSDL文件中定义安全策略,CXF会自动读取并应用这些策略。 *...

    cxf使用中编码问题

    这可能包括修改CXF的默认编码设置、调整XML解析器配置、检查数据库连接参数以及确保文件读写操作的编码设置正确。 总之,处理CXF中的编码问题需要对字符编码有深入的理解,并且熟悉CXF框架的配置和API。通过正确...

    零配置spring 整合cxf

    不需要额外的CXF配置。 ```java @Component @WebService(endpointInterface = "com.example.MyService") public class MyServiceImpl implements MyService { // ... } ``` 5. **运行与测试** 运行Spring ...

    client cxf

    - 配置文件:CXF支持通过Spring配置文件来管理客户端,可以定义服务端点、认证信息、超时设置等。 - 自动发现WSDL:如果服务提供者没有提供WSDL,CXF可以通过服务地址自动获取WSDL。 - 安全性:CXF支持多种安全机制...

    java cxf webservice接口解决跨域问题

    总结起来,解决Java CXF Webservice接口的跨域问题,需要利用CORS机制,配置CORS Filter,可能涉及`java-property-utils-1.9.jar`库,以及在`web.xml`中设置相应的初始化参数。同时,如果项目使用Spring框架,还可以...

    cxf-servlet.xml

    这时干净的cxf的核心配置文件·

Global site tag (gtag.js) - Google Analytics