Axis2+MyEclipse通过WSDL2Java生成wsdl客户端

刚做了WebService的接口,生成客户端的方式很多,记录下自己用的一个比较较简单的方式:

Axis的版本不同,参数稍微有点不同

在你的项目中导入相应的jar包,右键–>Run As–>Run configurations–>右键选择Java Application,新建(new),会看到下面这个界面。Project一般是你选择run as的项目名或者类名,没必要去改它。

Axis2+MyEclipse通过WSDL2Java生成wsdl客户端_第1张图片

这个时候开始做2件事情,第一个,在Main class,点击Search,模糊搜索WSDL,既可找到WSDL2Java(前提是你导入了axis2的jar包),还有记得勾选 Include system libraries when searching for a main class。

Axis2+MyEclipse通过WSDL2Java生成wsdl客户端_第2张图片

这个时候就可以选择Arguments这里的参数了,如图:
一般情况下配置这个参数就够了,还有很多参数,网上很多人都是直接把人家的提示贴出来也没说啥意思。这里解释下配的这几个参数

-uri:wsdl的绝对路径或者一个wsd的链接地址
-p:生成出来的客户端包路径
如果别人给你提供的路径是 com.test.web.webservice.xx.xx,如果这里不做-p的配置的话,也是可以的,它会给你生成一个默认的包路径,就是上面这一坨,如果你觉得你不想要这么长,或者像匹配自己项目的命名规则,这里面配置自己的包路径就行。
-o:输出路径,就是你生成的客户端的代码放在哪

Axis2+MyEclipse通过WSDL2Java生成wsdl客户端_第3张图片

点击run,就可以生成客户端代码了,Axis2生成的客户端就2个类,一个是 xxxStub.java,另一个是xxxCallBackHandler.java。虽然就这俩类,不过你wsdl的所有东西都已经包含在里面了,有兴趣可以点开去瞅瞅。

客户端调用,要看你具体的业务了,看你封装成什么样子的,我这里是入参就是几个字符串,返回的是一个对象,也就是结构体。这里贴下自己代码。

GcsVehicleInfoServiceStub stub = new GcsVehicleInfoServiceStub();//可以选择输入地址的构造方法,这里直接调用本机

//设置参数
UserLogin userLogin = new UserLogin();
userLogin.setUserName("admin");
userLogin.setUserPwd("123");//加密处理

//调用方法
UserLoginResponse userLoginResp = stub.userLogin(userLogin);

//返回值处理
GcsLoginResult loginResult = userLoginResp.get_return();

System.out.println("用户登录处理结果:"+loginResult.getErrorCode()+");

xxxStub这里面会有多个构造方法,很多时候无参构造器都是不可用的,因为这里会给你附一个默认的调用地址,这个地址是wsdl提供方生成文件的服务器地址,有可能他测试环境生成了wsdl,然后生产也是这个文件,这个时候就要自己去重新写地址了。

你可能感兴趣的:(JAVA基础大法)