1.SOAP:
简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协 议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网
协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多 用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的 应用
程序。
2.axis全称Apache EXtensible Interaction System 即阿帕奇可扩展交互系统。Axis本质上 就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。Axis目前版
本是为Java编写的,不过为C++的版本正在开发中。但Axis并不完全是一个SOAP引擎,它还 是一个独立的SOAP服务器和一个嵌入Servlet引擎(例如Tomcat)的服务器。
3.深入理解soap引擎:
a.Soap目标就是要完成对远程方法的调用。
b.对于核心部分,需要完成的是 : 用反射机制 实现对类中方法的调用。
c.于是需要有类名,方法名,参数列表(包括参数个数/类型),参数值。
d.收到一个SOAP消息首先要对其进行解析: 解析就是从SOAP消息(文本)è(转化成) Envelope对象。解析后就要进行处理:提取有用信息,得到类名,参数的值,因为远程 传
递的过程都是利用字符串的形式,但是要想知道其具体的类型可就没那么的简单了, 这里就需要的是一个描述文件进行的处理。
e.这里是核心的部分,再在外面进行扩展,可以想到需要的是对此消息进行接收与发送。 对于SOAP消息其发送和接收是通过构造xml来进行传输的,因为xml是通用的消息传输格 式
,一般的硬件都支持。传输形式有2种:socket和web容器 可以借助于已有的容器如 tomcat,创建web工程,就是通过servlet实现对消息的接收。
f.以上主要为接收SOAP消息,以下为发送SOAP消息,和以上的过程可逆。
首先就是构造envelope对象并往该对象中放入结果。此过程需要把Java类型的数据都变 成xml元素,(实现这个也需要的是一个中间类型转化机制)。把envelope对象转化成字
符串,进行发送到客户端,返回结果。
对于发送与接收参数类型与字符串的转化都会用到一个中间类型转化器,于是可以设计出 一个单独的类型转化器,一个抽象的父类,里面有2个方法,解析时的类型转化和发送给
客户端时的类型转化。子类继承此父类并相应的进行方法的实现还有通过配置文件(有 点类似于工厂模式)便能轻松的得到不同类型之间的转化。
g.在核心部分类名的得到:因为服务都是一个唯一的URL,在服务器端,对服务进行发布后 就可以通过类名与URL一一对应的关系由服务得到其处理的类名,也可以用配置文件实现
。对于发布一个服务,需要的是指定service name 、URL(对应于相应的class)、方法 中参数的顺序和类型(中间类型转化器中要用到发布这些服务的信息)。
h.Axis的运行需要如下组件包
axis.jar
jaxrpc.jar
saaj.jar
commons-logging.jar
commons-discovery.jar
wsdl4j.jar
符合JAXP-1.1的XML处理器。