验证发布到Tomcat的基于JAX-WS的Webservice的并发
2013-04-24 01:42
507 查看
在项目中遇到了,需要接受本地请求调用,然后调用其他方的webService提供的服务,将返回的结果加工,处理完成之后返回本地结果。
但是中间有一个小的顾虑,如果有A,B,C同时调用前置机提供的服务,比如前置机中需要10S来处理当前的请求信息,那么是否会出现串行执行的情况,也就是最后一个排队的C会等待30S的时间才能够得到所需要的结果,当然,容器或者框架肯定会处理这么低级的问题,保险起见,我们还是验证一下如下:
建立一个WebService,其相关的实现类为:
public class ProvinceCardServiceImpl implements ProvinceCardService {
public String getMsg(String str) {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Hello "+str;
}
}
本地java客户端调用程序如下:
public class ProvinceCardClient implements Runnable {
public void run() {
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(System.currentTimeMillis())));
PcServicePortType service = new PcService().getPcServiceHttpPort();
System.out.println(service.getMsg("Andy"));
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(System.currentTimeMillis())));
}
public static void main(String[] args) {
new Thread(new ProvinceCardClient()).start();
new Thread(new ProvinceCardClient()).start();
new Thread(new ProvinceCardClient()).start();
}
}
下面是程序的一种可能结果:
2013-04-24 09:43:14
2013-04-24 09:43:14
2013-04-24 09:43:14
Hello Andy
Hello Andy
2013-04-24 09:43:25
2013-04-24 09:43:25
Hello Andy
2013-04-24 09:43:25
作者 陈字文(热衷于PM\ORACLE\J***A等,欢迎同行交流):ziwen#163.com 扣扣:4零9零2零1零零
可以看到,10S,接受并且同时完成了三个请求,所以,这个处理是并发的也必须是并发的。
但是中间有一个小的顾虑,如果有A,B,C同时调用前置机提供的服务,比如前置机中需要10S来处理当前的请求信息,那么是否会出现串行执行的情况,也就是最后一个排队的C会等待30S的时间才能够得到所需要的结果,当然,容器或者框架肯定会处理这么低级的问题,保险起见,我们还是验证一下如下:
建立一个WebService,其相关的实现类为:
public class ProvinceCardServiceImpl implements ProvinceCardService {
public String getMsg(String str) {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Hello "+str;
}
}
本地java客户端调用程序如下:
public class ProvinceCardClient implements Runnable {
public void run() {
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(System.currentTimeMillis())));
PcServicePortType service = new PcService().getPcServiceHttpPort();
System.out.println(service.getMsg("Andy"));
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(System.currentTimeMillis())));
}
public static void main(String[] args) {
new Thread(new ProvinceCardClient()).start();
new Thread(new ProvinceCardClient()).start();
new Thread(new ProvinceCardClient()).start();
}
}
下面是程序的一种可能结果:
2013-04-24 09:43:14
2013-04-24 09:43:14
2013-04-24 09:43:14
Hello Andy
Hello Andy
2013-04-24 09:43:25
2013-04-24 09:43:25
Hello Andy
2013-04-24 09:43:25
作者 陈字文(热衷于PM\ORACLE\J***A等,欢迎同行交流):ziwen#163.com 扣扣:4零9零2零1零零
可以看到,10S,接受并且同时完成了三个请求,所以,这个处理是并发的也必须是并发的。
相关文章推荐
- 用JAX-WS在Tomcat中发布WebService
- JAX-WS 学习二:基于WEB容器,发布WebService
- 基于Xfire SOAP Header的WebService安全验证(xfire服务端,jax-ws和xfire两种客户端)
- 用JAX-WS开发WebService服务端并用tomcat发布Web服务
- JAX-WS在tomcat上发布Webservice
- JAX-WS在tomcat上发布Webservice
- 用JAX-WS在Tomcat中发布WebService
- JAX-WS在tomcat上发布Webservice
- 用JAX-WS在Tomcat中发布WebService
- JAX-WS在tomcat上发布Webservice
- JAX-WS在tomcat上发布Webservice
- JAX-WS在tomcat上发布Webservice
- 使用Jax-ws将webservice发布到Web容器(Tomcat)
- JAX-WS在tomcat上发布Webservice
- 用JAX-WS在Tomcat中发布WebService
- webservice的几种验证方式(一)基于JAX-WS
- JAX-WS在tomcat上发布Webservice
- 用JAX-WS在Tomcat中发布WebService
- WebService学习之旅(二)JAX-WS基于Web容器发布WebService
- 使用JAX-WS(JWS)在tomcat中发布WebService