WSDL解析

本文介绍了如何通过解析WSDL文件来理解和调用第三方的WebService服务,强调了WSDL作为接口描述文档的重要性,并分享了一种从SoapUI源码中获取的解析方法,旨在实现0代码开发调用接口。
摘要由CSDN通过智能技术生成

【V芯:yd7527】背景

前面我们介绍过利用javassist动态生成webservice,这种方式可以使得我们系统通过页面配置动态发布webservice服务,做到0代码开发发布北向接口。进一步思考,我们如何0代码开发调用第三方webservice服务呢?

wsdl解析

首先必然是理解第三方webservice的接口描述,也就是解析wsdl文件。wsdl文件是webservice服务接口描述文档,一个wsdl文件可以包含多个接口,一个接口可以包含多个方法。

实际上,wsdl解析是十分困难的工作,网上也没有找到有效的解决办法,最终通过阅读SoapUI源码,找到了完美的解析方法。

代码

复制代码

 1 /**    
 2  * WsdlInfo.java Create on 2013-5-4 下午12:56:14    
 3  *    
 4  * 类功能说明:  wsdl解析入口
 5  *
 6  * Copyright: Copyright(c) 2013 
 7  * Company: COSHAHO
 8  * @Version 1.0
 9  * @Author 何科序   
10  */
11 public class WsdlInfo 
12 {
13     private String wsdlName;
14     
15     private List<InterfaceInfo> interfaces;
16     
17     /**
18      * coshaho
19      * @param path  wsdl地址
20      * @throws Exception
21      */
22     public WsdlInfo(String path) throws Exception
23     {
24         WsdlProject project = new WsdlProject();
25         WsdlInterface[] wsdlInterfaces = WsdlImporter.importWsdl( project, path );
26         this.wsdlName = path;
27         if(null != wsdlInterfaces)
28         {    
29             List<InterfaceInfo> interfaces = new ArrayList<InterfaceInfo>();
30             for(WsdlInterface wsdlInterface : wsdlInterfaces)
31             {
32                 InterfaceInfo interfaceInfo = new InterfaceInfo(wsdlInterface);
33                 interfaces.add(interfaceInfo);
34             }
35             this.interfaces = interfaces;
36         }
37     }
38 
39     public String getWsdlName() {
40         return wsdlName;
41     }
42 
43     public void setWsdlName(String wsdlName) {
44         this.wsdlName = wsdlName;
45     }
46 
47     public List<InterfaceInfo> getInterfaces() {
48         return interfaces;
49     }
50 
51     public void setInterfaces(List<InterfaceInfo> interfaces) {
52         this.interfaces = interfaces;
53     }
54 }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值