1 首先 下载 最新的 axis2-1.6.2-bin.zip 解压缩,使用命令行,切换 到 bin 目录 下,运行下面的命令。注意,如果 si_UpWeiboData_ob.wsdl 不在当前目录下,需要提供 si_UpWeiboData_ob.wsdl的物理路径。
wsdl2java -uri si_UpWeiboData_ob.wsdl -t
2 ,命令执行后,会生成如下的文件。
一个src目录
Si_UpWeiboData_obServiceStub.java 这个就是 服务的代理文件,其中会生成代理的方法
Si_UpWeiboData_obServiceCallbackHandler.java 这是异步调用的回调方法,如果需要进行异步调用的需要使用,这个类,如果不用异步方式的话,就不会用到这个类。Si_UpWeiboData_obServiceStub.java 中会生成两种调用方式的接口。根据需要进行选择。
一个test目录
这个就是生成的单元测试文件。里面会有两个测试方法。一个测试同步调用的方式,一个测试异步调用的方式。看如下代码的注释。
3,构造参数,传递数据,这一步也是最重要的异步。我生成的代码如下。注意看注释
/**
* Auto generated test method
*/
public void testsi_UpWeiboData_ob() throws java.lang.Exception{
com.jahwa.pos.crm.Si_UpWeiboData_obServiceStub stub =
new com.jahwa.pos.crm.Si_UpWeiboData_obServiceStub();//the default implementation should point to the right endpoint
com.jahwa.pos.crm.Si_UpWeiboData_obServiceStub.Mt_UpWeiboData_req mt_UpWeiboData_req4=
(com.jahwa.pos.crm.Si_UpWeiboData_obServiceStub.Mt_UpWeiboData_req)getTestObject(com.jahwa.pos.crm.Si_UpWeiboData_obServiceStub.Mt_UpWeiboData_req.class);
//TODO : Fill in the mt_UpWeiboData_req4 here
//下面这个地方就是,我们要填充自定义代码的地方,在这里我们要按照要求,构建自己的数据。最后构建成一个 mt_UpWeiboData_req4
HttpJsonGet hjg = new HttpJsonGet("GET","","http://v3.unotice.cn/webservice/client/get_weibo_list",1);
JSONArray weiboArray = hjg.getResult();
I_ZCRMT_ARTICLE_type0 article = new I_ZCRMT_ARTICLE_type0();
I_ZCRMT_WEIBO_type0 weibo = new I_ZCRMT_WEIBO_type0();
for(int i=0;i<2;i++){
Item_type0 item0 = new Item_type0();
item0.setZID(weiboArray.getJSONObject(i).getString("ZID"));
item0.setZTEXT(weiboArray.getJSONObject(i).getString("ZTEXT"));
weibo.addItem(item0);
}
HttpJsonGet wenzhang = new HttpJsonGet("GET","","http://v3.unotice.cn/webservice/client/get_article_list",1);
JSONArray wenzhangArray = wenzhang.getResult();
for(int i=0;i<2;i++){
Item_type1 item1 = new Item_type1();
item1.setZID(weiboArray.getJSONObject(i).getString("ZID"));
item1.setZARTICLE_TYPE(weiboArray.getJSONObject(i).getString("ZID"));
article.addItem(item1);
}
//注意这个地方,必须用这个方法,进行设置,它会把 localItemTracker 设置 为ture,这样才会把数据序列化进行传输。否者不会传输这个字段。
dur.setI_ZCRMT_ARTICLE(article);
dur.setI_ZCRMT_WEIBO(weibo);
mt_UpWeiboData_req4.setMt_UpWeiboData_req(dur);
//发送数据,实际调用代理方法,这个是同步调用方式,所以可以立刻返回结果。
stub.si_UpWeiboData_ob(mt_UpWeiboData_req4);
}