A new day is coming......
预备知识
进入学习java web service预先需要了解以下知识点,主要是有关xml和web service基础的,最好了解一下这些技术的发展历史、之间的关系
xml概念、使用场合
xsl/xslt概念
java xml parser: DOM/SAX,概念、使用方法
web service概念,现状
现行标准:SOAP, WSDL, UDDI, ebXML
java RMI
知识结构
正如sun最新发布的jwsdp包的结构,java web service包含如下技术模块
JAXP Java API for XML Processing 使用各种解析器处理XML文档
JAXB Java Architecture for XML Binding 使用模式派生JavaBeans 组件类处理XML文档
JAX-RPC Java API for XML-based RPC 通过Internet向远程对方进行SOAP方法调用,并接收返回的结果
JAXM(SAAJ) Java API for XML Messaging 通过Internet以一种标准的方式发送SOAP消息
JAXR Java API for XML Registries 为访问业务注册中心和共享信息提供一种标准的方式
jwsdp还包含
tomcat servlet容器
JSTL client端开发(jsp)标准标签库
注册中心服务器,一个测试用的注册中心服务器
JAXP
JAXP应该是学习web service过程中最易理解的部分,其作为xml解析/写入模块不仅仅在web service开发中使用。
JAXP作为框架推出而非parser实现,实际上其仅包含六个关键类,为获得XML解析器提供了标准接口,可配置使用任一DOM/SAX解析器。
JAXB
JAXB提供了一种快速和方便的方式来将一个XML模式绑定到Java代码的一个表示上,使得Java开发者能够更轻松地将XML数据和Java应用中的处理函数融合在一起,而不必对XML本身有很多的了解。
支持以下方式的绑定:
1, XML Schema compile java class
2, XML Doc unmarshal java object
3, java object marshal XML Doc
4, java object validate by XML Schema
JAX-RPC
一种远程调用机制,基于SOAP消息发送,支持WSDL
高级特性:允许发送整个文档,也允许发送文档的一部分
支持SOAP消息处理,并支持可扩展的类型映射
实现过程:
server:
1、定义web服务接口(即所提供的服务,扩展RMI.Remote)
2、实现接口类
3、运行映射工具,wsdeploy根据接口和类生成Tie类和WSDL
4、打包部署,可打包成war(生成web.xml文件,其中包含指向映射工具生成的属性文件)
client:
1、运行映射工具,wscompile根据WSDL生成Stub工厂,stub类
2、从Stub工厂获得Stub进行远程调用
JAXM
定义了一个基本的XML信息交换框架。
JAXM基于SOAP及带附件的SOAP规范,并可扩展到使用更高级的消息发送协议。
JAXM比JAX-RPC更适合SOAP消息发送,messaging provider支持以下高级特性:
1、单项(异步)消息发送
2、可以将消息路由到多个地方
3、可靠的消息发送
然而由于SOAP格式的不确定性,一般只在客户/服务商协商好后使用同一种schema才可使用JAXM直接通信,否则JAX-RPC更具通用性(从公开的WSDL即可获得接口)。
JAXR
提供访问XML注册中心的统一的方法。
XML注册中心用来存储已发布的web服务的信息。当前最常用的注册中心是UDDI注册中心。Jwsdp提供了一个供测试的注册中心服务器。
基本操作:
注册
查找注册
几点心得
1、web service各项技术都从client和server两方面定义,相对独立只与协议相关。原因是考虑到客户/服务器的分离以及兼容其他系统。
2、由于web service在设计使用过程中都要考虑其通用性,务必搞清楚各个组件的使用情形,之间的依赖关系,以及其他协议/系统与之接入的情况。