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

本文介绍如何使用Axis2工具将WSDL文件转换为Java代码,并通过示例展示如何构造请求参数、发送同步请求。重点讲解了客户端的配置、数据构造及请求发送过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

                    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值