几种访问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 只是单一的传值和返回值 交互性较少
调用结果的数据处理
最原始的编写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 只是单一的传值和返回值 交互性较少
调用结果的数据处理
相关文章推荐
- JAVA使用XFire开发Web Service客户端几种调用方式
- JAVA使用XFire开发Web Service客户端几种调用方式
- Web Service 客户端的几种方式
- JAVA使用XFire开发Web Service客户端几种调用方式
- perl 访问类方法的几种方式
- WCF跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP
- [opencv] 图像访问的几种方式
- MongoDB客户端访问 – Shell方式
- php使用Smarty的相关注意事项及访问变量的几种方式
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- Android几种网络访问方式的比较
- Java访问远程接口的几种方式
- hibernate访问数据库的几种方式
- 浅谈Android平台短信拦截的几种实现方式(包括NDK注册短信监听器)
- Web - 客户端存储的几种方式
- WCF 客户端调用几种方式
- Struts2的Action中方法的几种访问方式
- Myeclipse学习总结(9)——MyEclipse2014安装插件的几种方式(适用于Eclipse或MyEclipse其他版本)
- 使用JavaScript实现访问本站点任何页面都加载Frame的一种实现方式
- XFire开发客户端几种方式的示例