CXF之定制超时配置

1  客户端(在spring中配置超时):

如例:

 

 

首先要注意的事情是<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://localhost:8080/.*">

...

</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://widgets.widgetvendor.net.

例: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.

 

 

 

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
如例:
 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值