在开发webservice客户端的代码中,必须需要设置timeout与connection-timeout两个参数,因为很多时候客户端的应用不可能一直阻塞的等待服务端的响应。下面就针对jdk6开发的webservice客户端,对于上面两个参数的设置做一个说明:
一、直接用jdk中的java.net.URLConnection(也可以是java.net.HttpURLConnection)做客户端的开发。
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setConnectTimeout(connectTimeout * Millisecond);
conn.setReadTimeout(reaquestTimeout * Millisecond);
connectTimeout * Millisecond和reaquestTimeout * Millisecond:Millisecond=1000(表示1000毫秒的意思)
connectTimeout和reaquestTimeout是设置的时间数。
二、基于jdk6的wsimport命令通过wsdl文件构建的客户端(见本博客http://xm-koma.iteye.com/blog/1605800):
HuaXiaServiceImplPortType hxip = (HuaXiaServiceImplPortType) hxs
.getHuaXiaServiceImplPort();
Map<String, Object> ctxt = ((BindingProvider) hxip)
.getRequestContext();
ctxt.put("com.sun.xml.internal.ws.connect.timeout", connectTimeout
* Millisecond);
ctxt.put("com.sun.xml.internal.ws.request.timeout", reaquestTimeout
* Millisecond);
com.sun.xml.internal.ws.connect.timeout和com.sun.xml.internal.ws.request.timeout两个参数来自com.sun.xml.internal.ws.developer.JAXWSProperties这个类中的字符串常量。但由于很多小版本号较低的jdk6中没有这个类,所以写成字符串也是可行的。
另外可参考下面的文章:
http://stackoverflow.com/questions/3130913/setting-jax-ws-client-timeout
http://androidyo.iteye.com/blog/624015
http://www.blogjava.net/supercrsky/articles/247449.html
分享到:
相关推荐
上述代码片段展示了如何在Java中通过JDK提供的API来设定Webservice调用的超时时间。 首先,我们需要了解`javax.xml.ws.Service`类,它是Java中用于创建和访问Webservice的基础。通过`Service.create()`方法,我们...
- 修改生成的代码以适应实际需求,如添加错误处理逻辑、设置超时时间等。 #### 五、调用服务 1. **初始化客户端对象**: - 使用生成的客户端类初始化客户端对象。 - 设置必要的参数,如服务地址、方法参数等。 ...
标题 "JDK动态代理在EJB3(包括WebService)中的应用" 暗示了本文将探讨Java开发中的一种重要技术——JDK动态代理,以及它如何在企业级JavaBean (EJB) 3.x版本及其相关的Web服务实现中发挥作用。EJB3是Java EE平台的...
6. **打包和部署**:将你的Java项目打包成WAR文件,然后将这个WAR文件部署到JBoss 5.1应用服务器中。你可以通过Eclipse的“Server”视图,添加JBoss服务器,然后将WAR文件拖放到服务器上进行部署。 7. **测试Web...
- 可以通过调整CXF客户端的配置,例如设置连接超时、重试策略等,来优化性能和稳定性。 总之,使用Apache CXF,Java开发者可以方便地调用C#编写的Web服务,实现跨语言的通信。这个过程涉及到了WSDL解析、Java代理...
此外,可以通过调整Jetty服务器的配置来优化性能,例如增加线程池大小、设置超时时间等。 在提供的压缩包`cxfdemo`中,可能包含了实现上述步骤的示例代码,你可以参考这些代码来快速理解和实践Apache CXF创建独立...
消费者端设置优先级更高,可以灵活控制服务调用的超时,超时时,服务端线程不会被占用,但会产生警告。 【Dubbo注册中心】 - **Multicast注册中心**:无中心节点,通过组播地址实现服务注册和发现。 - **Zookeeper...
- 服务消费者端设置:消费者端设置的超时时间优先级更高,控制灵活性更高。如果消费者超时,服务端线程不被阻塞,仅发出警告。 3. **Dubbo注册中心** - **Multicast**:基于组播传输,无需中心节点。 - **...
关于超时时间设置,Dubbo允许在服务提供者和服务消费者两端设置。服务提供者端的超时时间更接近服务的实际特性,而消费者端的设置优先级更高,可以更灵活地控制调用超时。 Dubbo支持多种注册中心,如Multicast、...
- **setConnectTimeout**: 设置与服务连接的超时时长。 - **setSendTimeout**: 设置发送超时时长。 - **start**: 启动API。 - **getConnStatusIAGW**: 获取与网关的连接状态。 - **canelSms**: 取消短信发送。 - **...
- **服务消费者端设置**:如果消费者端设置了超时时间,则消费者端设置优先级更高,提供更多的灵活性。如果消费者端超时,服务端线程不会被终止,但会产生警告。 ### Dubbo的注册中心 - **Multicast注册中心**:不...
Dubbo超时时间可以通过服务提供者和服务消费者两端设置。服务端设置更贴近服务特性,消费者端设置有更高的优先级,便于灵活控制。若消费者端超时,服务端线程不会被占用,但会产生警告。 **3. Dubbo注册中心** - **...
2. **服务消费者端设置**:如果消费者端设置了超时时间,则以消费者端为准,具有更高的优先级。这种方式灵活性更强,但若消费者超时,服务端线程不会终止,只会产生警告。 ### Dubbo注册中心 Dubbo支持多种注册中心...
2. 服务消费者端设置超时时间,如果在消费者端设置了超时时间,以消费者端为主,即优先级更高。因为服务调用方设置超时时间控制性更灵活。如果消费方超时,服务端线程不会定制,会产生警告。 三、Dubbo 有些哪些...
在面试中被问到如何设置Dubbo的超时时间时,需要知道有以下两种设置方式: 1. 服务提供者端设置超时时间:这是推荐的方式,因为服务提供者更清楚自身服务的特性。 2. 服务消费者端设置超时时间:这种方式的优先级更...
此外,还可能需要处理网络连接的异常情况,如超时或连接失败。 总之,要使J2ME应用程序成功访问C# Web服务并处理中文字符,关键在于理解两种平台的编码差异,正确配置服务器端和客户端的编码设置,并在客户端代码中...
服务提供者端的设置有助于更好地理解服务性能,而消费者端的设置具有更高的优先级,能灵活控制调用超时。如果消费者端超时,服务端线程不会阻塞,但会产生警告。 【Dubbo注册中心】 Dubbo支持多种注册中心,包括:...
- **高效并发处理**:支持设置连接超时时间,并且其中的HttpMethods允许并行请求或高效连接复用。 ##### 3.2 提供便利的Web开发支持 HttpClient4组件极大地简化了Web浏览器和WebService客户端的开发工作,使得...
##### JDK常用的包 - **java.lang**:包含所有编程必需的基础类,如String、Math等。 - **java.util**:提供了大量实用工具类,如集合框架(List、Map等)、日期操作等。 - **java.io**:提供用于输入/输出的类,如...