SAAJ 是Sun提出的用于Java语言的SOAP数据模型,它只是一堆接口,
Axis提供全面支持。所谓支持,就是实现了这些接口而已。
这就好像JDBC是Sun定义的接口,各个数据库厂商都支持它,你不需要关心怎么实现,
直接使用Sun提出的这些接口,比如Connection, ResultSet 等等是一个道理。
不过实际应用时使用SAAJ并不是很方便,因为要组装一遍,有时显得比较繁琐。SUN还有另外一个用于远程调用的标准就是JAXRPC,  这个比较实用,符合开发人员的习惯,
得到了广泛使用。一般的Java SOAP SDK都会支持它。Axis也提供支持。
Axis自带的两个库文件saaj.jar 和jaxrpc.jar,
就是指的这2个接口标准。

解决方案 »

  1.   

    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学好,还请你以后多多指点!
      

  2.   

    你说的这个例子就是利用SAAJ来发送SOAP消息的。
    SAAJ中那些SOAP数据模型全部是接口,不过SAAJ它自带一个工厂模式的类,开发人员可以用它来初始化的实现的类。如果你不指明,通常会有一个默认的实现类,Sun的JWSDP 就默认它自己的实现类,Axis带的这个SAAJ也内置了Axis自己的实现类。当你实例化工厂时,你也就选择了一个实现类,因此可以通过工厂创建一个个的对象。你可以注意到,这些“接口”不是 new 出来的,都是由"父"对象生产出来的。你只是以接口的方式使用这些实现类而已。如果你使用过JDBC, 就会对这个很容易理解。
    这些属于面向对象开发的基础知识。如果你刚接触java, 除非项目急需,也许Web Service不是一个合适的起点。你可以先把基础打牢再深入学习。
      

  3.   

    真心感谢usabcd(9号公路上的3名共军) !希望以后能多得到你的指点!