几种访问Web Service的方式--适用于任何平台任何客户端

①SOAP方式
最原始的编写SOAP消息的方式 主要的技术为XML
流程为 
客户端soap(xml)请求--->服务处理并发送soap(xml)响应--->客户端接受并处理(主要是数据解析XML JSon)
②JAX-RPC或JAX-WS(SOAP消息的模拟以及解析封装在了JavaAPI中)
JAX-RPC的API中封装了java源程序与SOAP消息转换的方法
 具体方法1.占位程序
 
 具体方法2.动态调用DII
  ①实例化一个没有WSDL的Service类
  ②实例化一个Call对象代理,并对其进行设置
  ③调用Call对象的invoke方法(直接转为Java数据类型)
--------------------------------------------------------------------------------------
 具体方法3.动态代理DP(需要wsdl到Java的映射工具)
  ①用WSDL实例化一个Service对象
  ②实例化一个代理
  ③调用代理的操作(直接转为Java数据类型)
  
③基于框架的面向开发者的纯Java方法调用(动态代理的再次封装)
 分为导入Jar和不导入Jar的两种方法
 1.Java原生态的方法(导入Jar例子)
  ①import -keep wsdl
  ②通用方法
 2.CXF框架(不导入Jar例子)//暂时没有测试
  用到
   创建客户端代理工厂类
   设置Web服务接口
   设置地址
   通过代理工厂返回接口的实例
   传入参数
   
要搞清的几个问题 从什么平台调用 用什么方式调用 调用的过程 调用结果的数据处理
作为服务的提供者 应该怎样编程 而为各种调用者提供方便 
下面说的是各种平台调用
端:桌面 浏览器  移动
讨论桌面应用程序端不考虑程序大小问题 就Java平台而言 各种调用都较方便
JDK6原生态支持JAX-WS  但不支持完全JAXM(Java API for XML Messaging)和JAX-RPC
对于方式①soap方式 采用JAXM操纵构造SOAP消息的方式(JAXM包含两个包javax.xml.soap和javax.xml.message但是JDK只支持javax.xml.soap需要导入jaxm-api.jar)
方式②2需要导入jax-rpc.jar
方式②3需要将wsdl转为package导入
浏览器端
对于浏览器端大部分情况下分为两种情况
一服务器端的servlet方式调用
 作为客户端只负责发送请求和接收数据(不进行数据封装的操作)
 这一点与Java桌面方式类似
二客户端的js调用
 主要技术是AJax编写soap消息的方式或者是
 使用浏览器方式get或post请求的方式
三移动端
主要讨论Android客户端
 主要运用了ksoap(原因是Android不支持web service,需要用ksoap模拟soap消息 需要导入ksoap-android.jar)
 目前没有发现支持wsdl导入packge的方式(即动态代理方式)  
 目前手机客户端就比较流行的是类似于发送http请求(这种web service的处理过程其实发生在服务器端的servlet),因此只需要一个连接地址 连接返回值就是向浏览器回写的数据 基本上是Json格式的
 只需要将数据用Json解析一下就好  不过这种方式之适合用在  传递消息或数据的web service 只是单一的传值和返回值 交互性较少
调用结果的数据处理

转载于:https://www.cnblogs.com/Mike-zh/archive/2013/05/15/3079976.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值