1
消息路径
消息路径是axis的核心,实现主要分为两部分:server,client。
1.1
在服务端路径如图
Transport Listener主要是生产
MessageContext
,把特定格式的数据转化为message装入
MessageContext
中,
然后交给
Axis Engine
,开始
request chain
旅行,包括
transport
,
Global
,
Service
,顺序执行他们当中指定的
handler
,其中有个
URLMapper
,对应的
java
为
org.apache.axis.handlers.http.URLMapper
(在
server-config.wsdd
定义)这个
handler
根据
http://localhost/axis/services/AdminService
将
target Service
设置为
AdminService
。
1.2
在客户端
客户端执行的顺序与服务端相反,在transport中,包括
Transport Sender
,这个
handler
对应的
java
为
org.apache.axis.transport.http.HTTPSender
(在
client-config.wsdd
定义)负责与
server
端交互。
下面是一个整体的图,可以看的更清楚些。
2 子系统
先看一个图
概念与上面的相同,最好是对着server-config.wsdd中的文件会更清楚。
下面将介绍一个结构图,分别是handler,messageContext和Configuration
2.1 handler与tomcat中filter类似,依次处理messageContext。经过RequestHandler, RivotHandler, ResponseHandler.完成处理过程。
2.2 messageContext的结构
2.3
Engine 由两部分组成,一个AxisEngine类和EngineConfiguration接口。AxisEngine是一个抽象类,它有两个子类AxisClient和AxisServer分别处理负责上面提到的两种消息处理流程。
EngineConfiguration为Engine提供配置信息,在AxisEngine被创建的时候需要这些配置信息,结构图如下
最后还要提到一个AxisServlet,提供?wsdl,?list,?Method,需要扩展时,实现QSHandler接口。