axis2客户端无法实现并发只能是串行,不知道怎么并发实现请指教

问题描述

publicclassTestStub3implementsRunnable{publicstaticLoggerlogger=Logger.getLogger(TestStub3.class);privatestaticConfigurationContextctx=null;privatestaticResourceBundlerb=ResourceBundle.getBundle("usif");static{try{ctx=ConfigurationContextFactory.createConfigurationContextFromFileSystem(rb.getString("EnginePath"),rb.getString("EnginePath")+"/cfg/axis2.xml");}catch(AxisFaulte1){e1.printStackTrace();}}publicstaticvoidmain(String[]args)throwsRemoteException{newTestStub3().callTest();for(inti=0;i<100;i++){newThread(newTestStub3()).start();}}publicvoidcallTest()throwsRemoteException{//NormalStubstub=newNormalStub(ctx,"http://172.21.0.132:51300/esbWS/services/PerformanceTest");NormalStubstub=newNormalStub("http://172.21.0.132:51300/esbWS/services/PerformanceTest2");//NormalStubstub=newNormalStub(ctx,"http://172.21.0.132:51300/esbWS/services/PerformanceTest2",false);//NormalStubstub=newNormalStub(ctx,"http://127.0.0.1:51300/esbWS/services/PerformanceTest");NormalStub.CallServicecallService=newNormalStub.CallService();String[]param={"aa","bbb"};callService.setParams(param);longstartMillin=System.currentTimeMillis();NormalStub.CallServiceResponseresp=stub.callService(callService);NormalStub.SrvReturnBeanbean=resp.get_return();logger.info("-"+bean.getRetCode()+","+bean.getRetMsg()+"||lastTime="+(System.currentTimeMillis()-startMillin));//Thread.sleep(50);}publicvoidrun(){intnum=1000;while(num>0){num--;try{this.callTest();}catch(Exceptione){e.printStackTrace();}}}}====================================================================用如上方式测试,可是发现是串行调用服务端,没有实现并发调用,请问如何实现并发。采用axis2非客户端生成的代码,完全手动写客户端代码方式调用服务端,也无法实现并发。以前用的是axis1.4版本,这个版本按照上面的方式就可以实现并发调用服务端。

时间: 2024-10-27 12:25:50

axis2客户端无法实现并发只能是串行,不知道怎么并发实现请指教的相关文章

说说Android的广播(2) - 并发队列和串行队列

并发队列和串行队列 前面我们讲了,消息分为普通消息和有序消息两大类.普通消息是可以并发的,由于是并发的,这些广播的处理者之间互相是不依赖的. 另外,并发队列和串行队列都各维护了一条后台广播队列和前台广播队列.如果这个消息足够重要,想走快速通道的话,可以选择使用前台广播队列. 对于并发队列,如果是进程活着,动态注册到队列里的,系统会通过并发的方式迅速将消息广播出去,就跟大家所想象的一样. 但是如果需要通过启动新进程才能处理消息的情况,为了避免同时启动大量进程,系统还是采用串行的方式来处理的.后面我

请问多线程的同步和串行有什么区别

问题描述 请问多线程的同步和串行有什么区别 如果一段代码被锁住执行完再去执行另一段代码,这和顺序执行有什么区别呢,求各位大神解答啊 解决方案 没错,同步的代码,从本质上说,相当于串行(非并发)执行. 解决方案二: 多线程只有同步和异步之分,没有同步和串行. 串行一般只代码一行行有序执行.至于同步异步实际不关心. 解决方案三: 我的意思是如果同步了,不就跟顺序执行一个意思了么,执行完一个块再执行另一个块,那这样的话多线程的同步实际上没有实现并发啊,这个时候的多线程是为了什么呢 解决方案四: 其实多

axis2 客户端调用接口数据保存不了,这是怎么回事?报错如下

问题描述 axis2 客户端调用接口数据保存不了,这是怎么回事?报错如下 两个问题: 1. axis2 服务端数据类型为Timestamp,生成的客户端数据类型为Calendar,这就导致类型不匹配,保存数据的时候保存不了,这是怎么回事?报错如下,请大神们指点一下 2.服务端所抛出的异常客户端接收不到,怎么回事儿? 客户端调用如下: public class Test { public static void main(String[] args) { HxcNews hxcNews = new

《流程的永恒之道》(一)控制模式之串行、并发分裂及并发汇聚模式

控制模式是流程的中枢神经,它在作战小分队中负责将多个单独的作战活动组合在一起,并推动活动的自动化流转,形成作战流程.其重要性不言而喻,因此要设计一个好的流程,就必须学会应用各种各样的控制模式. 在探寻每个模式的究竟之前,我们首先定义一个统一的格式,对于控制模式,将按照如下统一的格式进行描述: 模式描述 我们在探寻每个控制模式时,将按照如下统一的格式进行描述. 原型实例(故事片段) 给出此模式的故事片段,通过鲜活的工作流故事展现此模式的应用场景. 上下文(描述.动机) 给出此模式的具体描述和动机:

axis2 客户端用户名密码

问题描述 axis2 客户端用户名密码 axis2客户端调用的时候需要设置用户名密码,在网上搜了下,发现了3种方式,其中方法1我调用成功了,2.3都认证失败,有没有高手帮忙解释下3面3种写法: 1. HttpTransportProperties.Authenticator auth = new Authenticator(); auth.setUsername(userName); auth.setPassword(password); stub._getServiceClient().get

ZooKeeper客户端事件串行化处理

为了提升系统的性能,进一步提高系统的吞吐能力,最近公司很多系统都在进行异步化改造.在异步化改造的过程中,肯定会比以前碰到更多的多线程问题,上周就碰到ZooKeeper客户端异步化过程中的一个死锁问题,这里说明下. 通常ZooKeeper对于同一个API,提供了同步和异步两种调用方式. 同步接口很容易理解,使用方法如下: ZooKeeper zk = new ZooKeeper(...); List children = zk.getChildren( path, true ); 异步接口就相对复

axis2客户端每调用一次方法,被调用的类就要初始化一次,怎么才能只初始化一次

问题描述 axis2客户端每调用一次方法,被调用的类就要初始化一次,怎么才能只初始化一次 axis2客户端每调用一次方法,被调用的类就要初始化一次,怎么才能只初始化一次

并发串行调用接口

这里思考比较少,不过因为事情本身比较简单,就简单处理了.毕竟我这种菜鸟,高大上的东西是从未停止过仰望的.备注下是因为如果有机会再用到类似的逻辑,可以拿来重新思考一下,另外,我还觉得有点儿TCP里"滑动窗口"的感觉喔,哈哈哈,毕竟场景类似,控制流量嘛 /** * 代码块说明: 小并发串行调用接口处理大批量数据 * 依赖变量: data (原始数据) */ var chunks = [], // 数据切割存储 size = 50, // 数据分片大小 concurrence = 4; //

怎样给串行化类分配版本号(可配置版本模式)

编写可串行化类时,MFC用你指定的模式号制定一个粗略的版本控制方式.在向档案写数据时, MFC用模式标记该类的实例:而在读回数据时,MFC将档案中的记录的模式号和应用程序中使用着的该类对象的模式号做比较,如果两模式号不匹配,则MFC发送一个CArchiveException,其m_cause 等于CArchiveException::badSchema.没有得到处理的该类异常会促使MFC显示一个对话框,提示 "非预期的文件格式".如果每次修改对象的串行化存储格式时都能做到增加模式号,那