CXF EndPointImpl如何在已发布的端点中设置超时

时间:2016-06-24 14:56:41

标签: web-services soap wsdl timeout cxf

对不起,如果我的问题不是很清楚,很难解释我的问题。

所以,我第一次使用CXF框架。我在网上搜索了一个解决方案而没有成功我们来解释用例。

我尝试编写Web服务(在服务器模式下)来接收SOAP消息,处理处理和回答。为此,我使用CXF和WSDL第一种方法。

我的实现似乎运行良好,我通过带有注释“@webservice”的实现类接收SOAP消息....处理此请求并返回一个答案。 我的问题位于处理方面,某些方面,并且根据SOAP消息,它可能很长,在这种情况下,CXF处理超时。 所以,我想配置“超时”,这允许我进行这个长时间的处理

baseClass="dijitContentPaneNoPadding"

对象 httpWebService 代表“回调”类。

2 个答案:

答案 0 :(得分:0)

您可以在配置级别使用ReceiveTimeout来设置服务在连接超时之前尝试接收请求的时间长度(以毫秒为单位)。设置0表示没有超时

  <http-conf:destination name="{http://apache.org/hello_world_soap_http}SoapPort.http-destination">
       <http-conf:server ReceiveTimeout="0" />
  </http-conf:destination>

请注意,还可以在应用程序服务器配置中设置连接超时参数

答案 1 :(得分:0)

如果您不想关注official way(取决于Spring),您可以试试这个:

EndpointImpl ep = (EndpointImpl) endpoint;
JettyHTTPDestination dest = (JettyHTTPDestination) ep.getServer().getDestination();
JettyHTTPServerEngine se = (JettyHTTPServerEngine) dest.getEngine();
AbstractConnector ac = (AbstractConnector) se.getConnector();
ac.setIdleTimeout(0);