学习WebService的体会一
- SQL92查询标准协议
在写应用程序查询数据库时,我们并没有考虑过为什么数据库可以将查询结果返回给上层的应用程序,甚至认为,这就是数据库应该做的,其实不然,这是数据库通过TCP/IP协议与另一个应用程序进行交流的结果,而上层是什么样的应用程序,是用什么语言,数据库本身并不知道,它只知道接收到了一份协议,这就是SQL92查询标准协议。 - WebService基本协议
WSDL – WebService Description Language – Web服务描述语言。
SOAP-Simple Object Access Protocol(简单对象访问协议)。
SOAP作为一个基于XML语言的协议用于有网上传输数据。
SOAP = 在HTTP的基础上+XML数据。
SOAP是基于HTTP的。
SOAP的组成如下:
Envelope – 必须的部分。以XML的根元素出现。
Headers – 可选的。
Body – 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。
- wsdl目录结构
Service- 相关服务访问点的集合例子
"><wsdl:port name="MobileCodeWSHttpPost" binding="tns:MobileCodeWSHttpPost">
<http:address location="http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx"/
</wsdl:port>
</wsdl:service>
Binding - 特定服务访问点与具体服务类的绑定例子
<wsdl:binding name="MobileCodeWSHttpPost" type="tns:MobileCodeWSHttpPost">
<http:binding verb="POST"/>
PortType - 对于某个访问入口点类型所支持的操作的抽象集合例子
<wsdl:portType name="MobileCodeWSHttpPost">
<wsdl:operation name="getMobileCodeInfo">
<wsdl:input message="tns:getMobileCodeInfoHttpPostIn"/>
<wsdl:output message="tns:getMobileCodeInfoHttpPostOut"/>
</wsdl:operation>
</wsdl:portType>
Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构
<wsdl:message name="getMobileCodeInfoHttpPostIn">
<wsdl:part name="mobileCode" type="s:string"/>
<wsdl:part name="userID" type="s:string"/>
</wsdl:message>
<wsdl:message name="getMobileCodeInfoHttpPostOut">
<wsdl:part name="Body" element="tns:string"/>
</wsdl:message>
- 根据wsdl文档通过JDK生成生成客户端调用代码
通过JAVA_HOME\bin目录下的wsimport.exe生成客户端调用代码。
例如:wsimport -s . -p com.project.test d:/project/demo.wsdl
-s 命令将生成 .java文件和 .class文件 。如果是-d的话只生成 .class文件
-p 制定生成的.java文件 和.class文件的包名