学习AXIS2
明白了什么是web service ,了解完SOAP协议,能看懂WSDL后,现在来看看AIXS2.
web service 是一种规范,它规定了消息传送使用SOAP,服务描述使用WSDL 。
但是他可没提供给你任何的方法,帮你构建SOAP报文、发出SOAP消息、接受SOAP消息、
解析SOAP报文。
当然, 你可能会说:"SOAP 本质上不就是XML吗 ?我自己拼装不就行了?SOAP不是使用HTTP传送吗?
我自己使用HTTPClient把它发出去不就行了?我自己写个Servlet获取http请求,自己解析xml不也一样吗?"
这样干当然可以,但你需要明白其中的许多技术细节,而且要耗费更多的时间。
但是,但是为什么要重复发明轮子呢!现在已经有许多现成的工具可用了,AXIS2就是其中之一。
一、AXIS2提供的帮助:
1、发送SOAP消息
2、接受、处理SOAP消息
3、从POJO创建web service
4、使用WSDL创建 服务端和客户端的实现类
5、为服务生产WSDL
6、发送接受带附件的 SOAP 消息
7、创建和使用REST风格的web service
8、创建和使用利用了 WS-Security, WS-ReliableMessaging, WS-Addressing,
WS-Coordination, and WS-Atomic的服务
二、AXIS2架构
XML Processing Model:现在发展成了Apache Web services project的一个子工程 Apache Axiom
Deployment:提供配置Axis2机制
Client API: 调用web service的接口
Transports: 传输
Code Generation:代码生成
Data Binding: 数据绑定 使用的是 JAX
SOAP Processing Model:SOAP处理模型
三、单独看下SOAP处理模型
对进来的SOAP消息处理,有如下阶段:
1、Transport Phase 根据报文头验证消息等
2、Pre-Dispatch Phase 预处理
3、Dispatch Phase - 把消息分发给正确的服务处理
4、User Defined Phases - 自定义处理
5、Message Validation Phase - 验证SOAP消息是否处理正确
6、Message Processing Phase -业务逻辑处理SOAP消息
对发出消息的处理:
1、Message Initialize Phase - 初始化消息
2、User Phases - 用户自定义处理
3、Transports Phase -sender 把SOAP消息发送到目标 endpoint