WSDL文件解析与处理


WSDL文件解析与处理

一、背景

  在工作的时候,偶尔会和第三方系统接口发送数据。他们除了可能会提供接口文档的方式,也可能会提供一个WSDL文件。第一次拿到WSDL文件可能会不知道如何去使用,此次记录一下自己在一个项目中遇到的WSDL文件处理。(方案多来自于其他博客)

二、根据WSDL,基于wsimport生成代码的客户端

  wsimport是jdk自带的命令,在使用之前。需要使 用终端(win+ R)进入到本地安装jdk的bin目录下 

#wsimport 命令使用
wsimport -keep -p com.wjin.sim.service.userService -d E:/ll http://localhost:8080/sim/service/userService?wsdl
  比较常用的[options]有:
  1. -d <directory>
       在指定的目录生成class文件
  2. -clientjar <jarfile>
       在当前目录生成jar文件,结合-d <directory>可以在指定的目录生成jar文件
  3. -s <directory>
       在指定的目录生成java源文件
  4. -p <pkg>
       指定生成文件的包结构
  5. -keep
       在生成class文件,或者jar包时,同时保留java源文件
 
生成的文件代码如下图:

 

 

三、浏览器查看wsdl页面,各个标签含义

  在浏览器直接输入wsdl文件的路径,如:http://localhost:8080/sim/service/userService?wsdl。就会出现下图页面:

 

 

标签简介:

内容参考自:https://www.cnblogs.com/ChrisMurphy/p/5224314.html

 * type元素,定义了交换信息的数据格式。

 * 为了实现最大的互操作性(interoperability)和平台中立性(neutrality),WSDL选用XML Schema DataTypes

 * 简称XSD作为标准类型系统,并将它作为固有类型系统。

<wsdl:definitions xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" 
xmlns:wsdl
="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns
="http://impl.XXXXXXX" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap11
="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdlsoap
="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc11
="http://schemas.xmlsoap.org/soap/encoding/"
targetNamespace
="http://impl.XXXXXX">   <wsdl:types>     <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://impl.XXXXXX">       <xsd:element name="add">         <xsd:complexType>           <xsd:sequence>           <xsd:element maxOccurs="1" minOccurs="1" name="uid" nillable="true" type="xsd:string"/>           <xsd:element maxOccurs="1" minOccurs="1" name="name" nillable="true" type="xsd:string"/>           <xsd:element maxOccurs="1" minOccurs="1" name="orgId" nillable="true" type="xsd:string"/>           <xsd:element maxOccurs="1" minOccurs="1" name="userTypeId" nillable="true" type="xsd:long"/>           <xsd:element maxOccurs="1" minOccurs="1" name="contentXml" nillable="true" type="xsd:string"/>         </xsd:sequence>       </xsd:complexType>      </xsd:element>

 

* message元素指定XML 数据类型组成消息的各个部分。message元素用于定义操作的输入和输出参数。

 * 元素是我们前面定义 *的types中的元素;

 * 如果采用RPC样式的消息传递,只需要将文档中的element元素应以修改为type即可。

 

 * service元素。服务元素包含一组port元素。端口将端点与来自服务接口定义的binding 元素关联起来。

 * port指定一个绑定的地址,这样定义一个通信的终端。

 *service:一个webservice的容器

 *name:它用以指定一個服务器处理端口请求的入口(就是SEI的实现)

 * binding:引用上面定义的<binding>

 *address:当前webservice的请求地址

<wsdl:service name="userService">
  <wsdl:port name="userServiceHttpPort" binding="tns:userServiceHttpBinding">
    <wsdlsoap:address location="http://cnsvwshvm12093.csvw.com:9080/sim/service/userService"/>
  </wsdl:port>
</wsdl:service>

 

 

 
 
 
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM