Code Bye

saaj和axis是什么关系呢?

 

我看了一下axis的源码,它里面有部分和saaj中类似,是否axis采用了saaj中的对象,只是apache将他们重新用package包装了一下呢?具体saaj是axis后台支持jar包,还是其他关系?好像只用saaj也可以实现soap消息的传递/接受,这不是和axis的效果一样了?请告诉我一下.谢谢!

太高深了。UP
20分
SAAJ 是Sun提出的用于Java语言的SOAP数据模型,它只是一堆接口,
Axis提供全面支持。所谓支持,就是实现了这些接口而已。
这就好像JDBC是Sun定义的接口,各个数据库厂商都支持它,你不需要关心怎么实现,
直接使用Sun提出的这些接口,比如Connection, ResultSet 等等是一个道理。
不过实际应用时使用SAAJ并不是很方便,因为要组装一遍,有时显得比较繁琐。SUN还有另外一个用于远程调用的标准就是JAXRPC,  这个比较实用,符合开发人员的习惯,
得到了广泛使用。一般的Java SOAP SDK都会支持它。Axis也提供支持。
Axis自带的两个库文件saaj.jar 和jaxrpc.jar,
就是指的这2个接口标准。
to:usabcd(9号公路上的3名共军)
   经常看见你解答问题,很热心,也很有见地,很高兴你关注我的帖子!^_^
   但是我看http://www-900.ibm.com/developerWorks/cn/xml/x-jaxmsoap/index.shtml的这篇文章,使用SAAJ发送和接收SOAP消息。它里面就是直接用saaj来实现soap服务的。如果如你所说是接口集合的话,那些saaj中的类就不能直接使用了,但他们都被直接使用了呀,是否我对接口的理解不对?
   我刚接触java不久,也很想把java和web service学好,还请你以后多多指点!
你说的这个例子就是利用SAAJ来发送SOAP消息的。
SAAJ中那些SOAP数据模型全部是接口,不过SAAJ它自带一个工厂模式的类,开发人员可以用它来初始化的实现的类。如果你不指明,通常会有一个默认的实现类,Sun的JWSDP 就默认它自己的实现类,Axis带的这个SAAJ也内置了Axis自己的实现类。当你实例化工厂时,你也就选择了一个实现类,因此可以通过工厂创建一个个的对象。你可以注意到,这些“接口”不是 new 出来的,都是由”父”对象生产出来的。你只是以接口的方式使用这些实现类而已。如果你使用过JDBC, 就会对这个很容易理解。
这些属于面向对象开发的基础知识。如果你刚接触java, 除非项目急需,也许Web Service不是一个合适的起点。你可以先把基础打牢再深入学习。
真心感谢usabcd(9号公路上的3名共军) !希望以后能多得到你的指点!
学习。佩服!

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明saaj和axis是什么关系呢?