由于用CXF构建的webservice使用的是spring配置方式很简单
但是由于客户端使用jaxws:client方式请求的,这个请求方式不能直接配置timeout的
用spring配置jaxws客户端请求的的配置:
<jaxws:client id="" serviceClass="" address="" />
如果使用这种方式配置直接有timeout属性
<http-conf:conduit>
<http-conf:client ConnectionTimeout="30000"/>
</http-conf:conduit>
那我们继续使用jaxws:client配置方式如何设置timeout呢?
只需在我们调用web service的代码之处加上:
long timeout = 10000L;
Client client = ClientProxy.getClient(对应spring配置文件里你配置的clientid);
if (client != null) {
HTTPConduit conduit = (HTTPConduit) client.getConduit();
HTTPClientPolicy policy = new HTTPClientPolicy();
policy.setConnectionTimeout(timeout);
policy.setReceiveTimeout(timeout);
conduit.setClient(policy);
}
分享到:
相关推荐
在CXF中,超时通常涉及到两个主要方面:连接超时(Connect Timeout)和读取超时(Read Timeout)。 连接超时是指客户端尝试建立到服务器端的TCP连接时允许的最大时间。如果在这个时间内连接未建立成功,客户端将抛...
<session-timeout>60</session-timeout> ``` **第三步:配置 cxf-servlet.xml** 在 `WEB-INF` 目录下创建 `cxf-servlet.xml` 文件,用于配置 CXF 服务。在这个文件中,我们定义了 JAX-WS 服务器,声明了服务接口...
2. 设置Web服务对象的`Timeout`属性,例如对于一个名为`WebServiceTest.Service1`的服务,我们可以这样设置: ```csharp WebServiceTest.Service1 src = new TestWinApp.WebServiceTest.Service1(); src.Url = ...
解决这个问题的方法包括设置 Socket 的 timeout 时间、确保连接关闭后不再发送数据和使用连接池或其他机制来管理连接。同时,我们也可以通过实践经验来了解到,timer 的方法可能会导致大量的 Socket 连接建立和关闭...
接着,`executorService.awaitTermination(timeout, TimeUnit.SECONDS)`是一个阻塞方法,它会等待线程池中的所有任务执行完毕,或者直到给定的超时时间到达。如果在指定时间内所有任务都已完成,那么返回true;否则...