微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

axis 使用 wsdl 文件 生成 webservice的 client 端 ,并传送数据的解决方案

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);         }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐