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

利用axis生成webservice代码

利用axis的命令生成代码的网上一大片

但是有些人 就是觉得配置太麻烦了 懒得去配置 直接用代码生成代码多方便

 

利用axis1.4去生成 下载axis1.4 解压搜索所有的jar  在eclipse建一个java工程 jar加入构建目录

新建类

import org.apache.axis.wsdl.WSDL2Java;


public class TestGen {

 public static void main(String[] args) {
   WSDL2Java.main(new String[] { "-p",
   "cn.net.tc.yjj.core.datajjyj",
   "http://192.168.3.52:88/InfoUploadService.asmx?wsdl"
   });
     
 }

}

会在当前工程下新建一个cn.net.tc.yjj.core.datajjyj 目录 下面就是生成代码

 

利用axis2去生成 下载axis2 解压搜索所有的jar  在eclipse建一个java工程 jar加入构建目录

新建类

import org.apache.axis2.wsdl.WSDL2Java;


public class TestGen {

 public static void main(String[] args) throws Exception {
  // Todo Auto-generated method stub
   WSDL2Java.main(new String[] {"-uri","http://192.168.3.52:88/InfoUploadService.asmx?wsdl","-p",
   "cn.net.tc.yjj.core.datajjyj1",
  
   });
     
 }

}

实际上 代码上运行也是相当于 在命令行运行 没有命令那么麻烦 配置的东西多 又容易报错

在命令行运行 axis2 就是 java WSDL2Java -uri http://192.168.3.52:88/InfoUploadService.asmx?wsdl -p cn.net.tc.yjj.core.datajjyj1

java命令实际就是调用的 WSDL2Java的主方法 其他的都是参数

运行即可

1.4是http1.0的才能生成 http1.1必须使用axis2生成

axis生成后就两个类  其中stub那个类 才是运行的类

axis2调用类似如下:

SyncDataDao d = new SyncDataDaoImpl();
  InfoUploadServiceStub stub=new InfoUploadServiceStub();
  //登录获取token
  AuthenticateUser user=new AuthenticateUser();
  SecuredWebServiceHeaderE dd=new SecuredWebServiceHeaderE();
  dd.setSecuredWebServiceHeader(new SecuredWebServiceHeader());
  dd.getSecuredWebServiceHeader().setUsername(PropertiesUtil.getPropertyEntity().getData_userid());
  dd.getSecuredWebServiceHeader().setPassword(PropertiesUtil.getPropertyEntity().getData_password());
  AuthenticateUserResponse response=stub.authenticateUser(user,dd);
  String token=response.getAuthenticateUserResult();
  System.out.println(token);
  //获取品种信息
  GetCommodities gg=new GetCommodities();
  dd.getSecuredWebServiceHeader().setAuthenticatedToken(token);
  GetCommoditiesResponse res=stub.getCommodities(gg,dd);
     ArrayOfcommodity array= res.getGetCommoditiesResult();
     commodity[] cd=array.getcommodity();
     //插入品种数据到数据库
     d.insertcommodityToDb(cd);
     for(commodity cc:cd){
      System.out.println("获取品种信息_"+cc.getcommodityID()+"-"+cc.getTradeName());
     }
  
     //获取企业信息
     GetAllMembers m=new GetAllMembers();
     GetAllMembersResponse members= stub.getAllMembers(m,dd);
     Members[] mem=members.getGetAllMembersResult().getMembers();
     for(Members cc:mem){
      System.out.println("获取企业信息_"+cc.getMemberID()+"-"+cc.getName());
     }
   //插入企业数据到数据库
     d.insertPublicmemberToDb(mem);
    
     GetComMember commem=new GetComMember();
     //获取企业品种经营关系
     GetComMemberResponse comres=stub.getComMember(commem,dd);
     ComMember[] cm=comres.getGetComMemberResult().getComMember();
     d.inserComMemberToDb(cm);
     for(ComMember cc:cm){
      System.out.println("获取企业品种经营关系_"+cc.getMemberID()+"-"+cc.getcommodityID());
     }
     //获取用户母印信息
     GetUser gUser=new GetUser();
     GetUserResponse userRes=stub.getUser(gUser,dd);
     User[] us=userRes.getGetUserResult().getUser();
     d.inserEntCertToDb(us);
     for(User cc:us){
      System.out.println("获取用户母印信息_"+cc.getMemberID()+"-"+cc.getKeyString1());
     }

 

axis会生成很多个文件 其中 PortType文件就是接口文件

使用locator类去获取这个接口的实例

IntentSendProductLocator l = new IntentSendProductLocator();
      IntentSendProductSoap_PortType ps = l
        .getIntentSendProductSoap();

然后就可以调用方法

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

相关推荐