Axis2解析wsdl反向生成webservice客户端代码

小灰灰 2022-03-15 06:40 868阅读 0赞

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窗口

  1. .\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数据

  1. SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub stub= new SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub();
  2. HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
  3. auth.setUsername("GC_TEST");
  4. auth.setPassword("12345678");
  5. stub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, auth);
  6. 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();
  7. 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();
  8. 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();
  9. // reqHead.setPARTNER(paramReq.getPARTNER());// 登录员工BP
  10. // reqHead.setPAFKT(paramReq.getPAFKT());// 登录员工组织
  11. // reqHead.setSPRAS(paramReq.getSPRAS());// 语言
  12. dtReq.setHEADER(reqHead);
  13. 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();
  14. dtReq.setREQUEST(reqBody);
  15. mtReq.setMT_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_REQ(dtReq);
  16. 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);
  17. 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();
  18. SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.DT_GCJT_RMP_HEADER_RESP respHead = dtResp.getHEADER();
  19. SI_GCJT_RMP_TWO_I006_DEVICEINFO_LIST_QUERY_OUT_SYNServiceStub.CSSINFO_LIST_type0[] respBody = dtResp.getCSSINFO_LIST();

respBody就是我们需要获取的数据

说在最后的话:编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~

发表评论

表情:
评论列表 (有 0 条评论,868人围观)

还没有评论,来说两句吧...

相关阅读