Axis2解析wsdl反向生成webservice客户端代码
1、下载axis2-1.6.2.zip(http://archive.apache.org/dist/axis/axis2/java/core/ )并解压到你的任意盘下(最好下载的版本和项目中pom文件中的axis2的版本一致)
2、设置axis2的环境变量
3、把wsdl文件保存到本地 XXX.wsdl
4、通过dos命令生成客户端程序
在D:\oxy\axis2-1.6.2\bin目录下打开cmd窗口
.\wsdl2java.bat -uri F:\SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNService.wsdl -p com.test.platform.cgb.webservice.client -o stub
uri参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。
-p参数指定了生成的Java类的包名
-o参数指定了生成的一系列文件保存的根目录
5、在执行完上面的命令后,读者就会发现在当前目录下多了个stub目录(执行命令之前要保证自己电脑的系统变量中配置好了AXIS2_HOME、JAVA_HOME、CLASSPATH等变量)
6.程序调用生成的代码请求webservice数据
SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub stub= new SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub();
HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
auth.setUsername("GC_TEST");
auth.setPassword("12345678");
stub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, auth);
SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.MT_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_REQ mtReq = new SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.MT_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_REQ();
SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.DT_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_REQ dtReq = new SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.DT_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_REQ();
SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.DT_GCJT_RMP_HEADER_REQ reqHead = new SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.DT_GCJT_RMP_HEADER_REQ();
// reqHead.setPARTNER(paramReq.getPARTNER());// 登录员工BP
// reqHead.setPAFKT(paramReq.getPAFKT());// 登录员工组织
// reqHead.setSPRAS(paramReq.getSPRAS());// 语言
dtReq.setHEADER(reqHead);
SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.REQUEST_type0 reqBody = new SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.REQUEST_type0();
dtReq.setREQUEST(reqBody);
mtReq.setMT_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_REQ(dtReq);
SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.MT_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_RESP mtResp = stub.sI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYN(mtReq);
SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.DT_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_RESP dtResp = mtResp.getMT_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_RESP();
SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.DT_GCJT_RMP_HEADER_RESP respHead = dtResp.getHEADER();
SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.CSSINFO_LIST_type0[] respBody = dtResp.getCSSINFO_LIST();
respBody就是我们需要获取的数据
说在最后的话:编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~
还没有评论,来说两句吧...