自己做一个程序放到tomcat里面这个就是服务,自己安装一个oracle,oracle启动之后那它本身就是一种服务。


WebService就是HTTP,那么它和HTTP有什么不同呢?

HTTP GET

HTTP GET和HTTP POST

soap=http post+xml

不管什么样的系统它都能解析xml,所以soap协议是一种标准。传递的内容不一样,是xml。而且必须是post请求。



POST请求真正要传递的数据,通过HTTP请求传递的。

soap:Envelop开头,xmlns:soap,soap是xml的命名空间。<mobileCode>string</mobileCode><userID>string</userID>跟业务逻辑无关的数据。


响应的消息

200 状态 请求成功


除了提供SOAP1.1和SOAP1.2的服务。还提供了HTTP GET和HTTP POST的服务。


肯定不是用手点人家的接口,而且是用程序调,用程序调人家的接口就要了解人家发布出来的服务的规则。了解webservice必须理解的一个东西是WSDL,相当于是一个数据运输,没有它你无法调用。WSDL是描述别人给你发布出来的接口的说明书。


如何读WSDL?从下往上读。根节点:<wsdl:definitions></wsdl:definitions> wsdl的定义。

<wsdl:service>是服务访问点集合。这里提供了多个服务的访问点。一个服务访问点针对一种请求方式。一个是以SOAP1.1的方式来做请求,那么这是一个服务访问点。SOAP1.1是一个服务的访问点,SOAP1.2又是一个服务访问点。HTTP GET和HTTP POST又是一个服务访问点。这里提供了四个服务访问点。

所以一共有四个wsdl:port。但是我们使用的是第一个。

虽然一共四个服务访问点,但是最终实现的只有一个:soap1.1。

Service是服务访问点集合,拿出一个那就是Port。访问点wsdl:port后面有一个Binding,服务访问点后面一定有一个对应的类给它做服务,这个类在java里面叫类,提供服务的类。wsdl:binding只是一种中间的关系,把一个具体的port绑定到一个具体的类上。

查找命名空间tns:MobileCodeWSSoap来找到服务访问点的wsdl:binding。


wsdl:portType就是服务访问点绑定的类。这个找到了,你就能调用它了。服务访问点绑定的类有三个。

服务访问点绑定的类wsdl:portType有什么东西呢?wsdl:operation,operation是操作,它就是我们的方法,有getMobileCodeInfo和getDatabaseInfo两种方法。<wsdl:operation>里面是什么呢?方法的里面是两个消息:wsdl:input输入消息和wsdl:output输出消息。

我们站在哪一端来看呢?我们站在服务端来看,把入参定义为输入消息。也就是:

从服务端,这一段是请求过来的。

这一段一定是响应过去的。所以每一次调用,都有两个消息,输入输出。即使返回值为空,也要有空的消息。


还是一样往上找,这里面具体的消息,还是查找命名空间tns:getMobileCodeInfoIn。

之前的这种消息有一种特殊的这样一种规则,必须在某一些元素里面写某一样的这样的数据,这样的数据到底是由谁来约束的呢?


再往上找。s:element来约束你的消息体的。

<s:sequence>定义的是序列,<s:sequence>也是一个元素<s:element>,<s:element>minOccurs最小出现或发生次数,maxOccurs最大出现或发生次数,name,type="s:string"字符串类型

这个s:element和响应过去客户端的消息体是对应的

最新文章

  1. 【读书笔记】Asp.Net MVC 上传图片到数据库(会的绕行)
  2. 集合视图控制器(CollectionViewController) 、 标签控制器(TabBarController) 、 高级控件介绍
  3. (转载)DataTable使用技巧总结
  4. 对&quot;一维最大子数组和&quot;问题的思考(homework-01)
  5. Mac os 10.9下面配置JAVA_HOME
  6. Linux 多线程调试(内存占用、死循环、CPU占用率高……)
  7. C与C++不同
  8. 一句话美化你的下拉框之jQuery.selectMM插件
  9. 编写一个程序, 将 a.txt 文件中的单词与 b.txt 文件中的 单词交替合并到 c.txt 文件中, a.txt 文件中的单词用回车符 分隔, b.txt 文件中用回车或空格进行分隔。
  10. poj 2309 BST 使用树阵lowbit
  11. MyBatis从入门到放弃四:一对多关联查询
  12. [BZOJ1050] [HAOI2006] 旅行comf (Kruskal, LCT)
  13. PS 滤镜算法原理——高反差保留 (High Pass)
  14. java应用:向用户注册的邮箱发送邮件
  15. ArcGIS自定义工具箱-字段值部分替换
  16. sqlserver导入导出数据库结构及创建用户分配权限
  17. Python中写一个乒乓球类的游戏
  18. hdu3065 病毒侵袭持续中 AC自动机入门题 N(N &lt;= 1000)个长度不大于50的模式串(保证所有的模式串都不相同), 一个长度不大于2000000的待匹配串,求模式串在待匹配串中的出现次数。
  19. udev笔记
  20. Python-并发编程(协程)

热门文章

  1. ROS机器人星火计划公开课总结
  2. 【Java 并发】Executor框架机制与线程池配置使用
  3. 第2章 开始Flex
  4. DbEntry 简单实现
  5. niosii boot过程
  6. [转]linux下查看进程内存使用情况
  7. mybatis排序
  8. retful上传文件php的实现
  9. Tomcat设置欢迎页问题
  10. Java 引用类型变量的声明和使用