加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

利用axis生成webservice代码

发布时间:2020-12-17 01:08:11 所属栏目:安全 来源:网络整理
导读:利用axis的命令生成代码的网上一大片 但是有些人 就是觉得配置太麻烦了 懒得去配置 直接用代码生成代码多方便 ? 利用axis1.4去生成 下载axis1.4 解压搜索所有的jar? 在eclipse建一个java工程 jar加入构建目录 新建类 import org.apache.axis.wsdl.WSDL2Java;

利用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();

然后就可以调用方法了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读