Java Web Service
2015年7月16日
1 目标:提供方法共享,由网络进行交互。
其它的网站或应用在线调用。
网站或应用可以专注于核心功能,而其它功能使用web服务。
2 原理:服务器提供WEB服务与客户端使用SOAP协议交互,HTTP通信。
SOAP协议交互:XML交互协议,使用HTTP通信,交互XML数据,JAX-WS为标准,AXIS、CXF实现。
Restful:SOAP的简化版本,简单的网络访问理念,使用HTTP通信,交互HTTP请求,JAX-RS为标准,CXF实现。
WEB服务:Java实现。
HTTP通信:Tomcat。
为了解耦web服务与传输方法,AXIS、CXF与HTTP是独立设计的。
WSDL提供xml格式的使用说明。
3 流程:客户端发起Http请求(根据协议(soap,restful)携带数据),Http服务器处理Http请求,使用Web服务协议(JAX-WS、JAX-RS)将请求与Java进行映射,由Java服务处理请求,使用Web服务协议将响应与Http进行映射,返回给HTTP服务器,再发送到客户端,客户端直接使用(restful)或再反射为Java代理。
4 方法:CXF,AXIS。
参考:http://www.widecodes.com/0SxeqjPWqj/cxf-vs-axis-big-xml-over-soap.html
http://5148737.blog.51cto.com/5138737/1604472
4.1 方法:CXF(推荐),功能最强大,使用简单,开发效率高,直接与Spring结合。
目标:将HTTP协议与SOAP协议互换,提供Servlet进行服务,生成soap响应。
原理:CXF生成框架(提供将标准POJO转换为servlet,以及SOAP协议转换功能),只需提供POJO服务。
方法:CXF+Spring+Tomcat
4.2 AXIS:配置复杂
AXIS1,AXIS2:比较早的web服务实现,AXIS1功能简单,使用也较简单,但06年之后不再更新。Axis2虽然功能有加强,但操作太过复杂,文档也比较乱(CXF的一项特性就是:容易使用)。
目标:进行web服务的SOAP规范实现。
4.2.1方法:AXIS1的使用方法。
发布WEB服务:将axis文档copy到tomcat。将服务.java文件更名为.jws(不要使用包,使用包的配置更麻烦)放到axis下。
发送WEB请求:http://localhost:8080/axis/HelloService.jws?method=sayHello¶meter=xx
处理WEB响应:axis应用下的jws类。