您的位置:首页 > 其它

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

2013-05-15 15:50 309 查看
①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 只是单一的传值和返回值 交互性较少
调用结果的数据处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: