|
Web Service在java领域,AXIS因其容易使用,很多项目都使用了它,对于Sun提供的Web Service技术,则不多使用,现更新有关版本,重新使用了一下Sun提供的JWSDP,并写了这篇入门.供需要者参考. 一 Sun公司的Web Service Web服务是基于web的使用开放的基于xml标准的企业应用,是和调用客户端交换数据的传输协议,Java技术和WEB服务被组织成这些亚类:
Java Web Services Developer Pack (Java WSDP) Java API for XML-Based RPC (JAX-RPC) Java API for XML Registries (JAXR) Java API for XML Processing (JAXP) Java Architecture for XML Binding (JAXB) SOAP with Attachments API for Java (SAAJ) XML and Web Services Security |
JAX-RPC代表基于xml远程过程调用的java API,是一项为构建使用RPC和XML的Web服务和客户端的技术,通常用于分布式的CS模式中,它是一种RPC机制能使客户端执行其他系统上的过程. 在JAX-RPC中,一个RPC由基于XML协议如SOAP表示,这个SOAP规范定义了一个信封结构,编码规则以及为代表远程调用和响应的协定.这些调用和响应作为SOAP消息在HTTP上传输. 尽管SOAP消息复杂,但JAX-RPC API向应用开发者隐藏了这些复杂性.在服务器端,开发者指定那个调用过程是通过用java语言写的接口定义的方法, 开发者还要编码一个或多个实现这些方法的类.客户端程序也容易编码:一个客户端创建一个代理(一个代表服务的本地对象),然后简单的在那个代理上调用那个方法.使用JAX-RPC,开发者不用生成或分析SOAP消息,这是JAX-RPC运行时系统做的事情:它在来往的API调用和响应到SOAP消息之间进行转换. 使用JAX-RPC,客户端和web services有一个巨大的好处:java编程语言的平台独立性.此外,JAX-RPC没有限制: 一个JAX-RPC客户端能访问一个并不在java平台上运行的web服务,反之亦然.这个灵活性是可能的以为JAX-RPC使用由W3C定义的技术:HTTP, SOAP,WSDL. WSDL为把一个服务在消息上描述为一套端点操作指定了一个XML格式. 二 SUN提供的WEB服务构建工具 J2EE提供了APIs和创建,发布可互操作WS和客户端的工具,其中JAX-RPC(SI)标准实现提供了wscompile 和 wsdeploy 工具,使你开发,发布,调用Web Service: 1 wscompile可接受两种输入:WSDL和Service Endpoint Interface,输出为可移植制品和model文件. 2 wsdeploy只有一种输入:包括wscompile输入和输出再加上一个部署描述符文件,输出是可发布的特定平台上的web service. 这些工具同Java WSDP一起打包可供使用,java web服务开发包是一个免费的集成工具箱,用它构建,测试,发布XML应用,web服务以及带有最新web服务技术和标准实现的web应用. (一) wscompile工具 1 工具介绍 它生成由JAX-RPC运行时需要的各种客户端和服务端制品以供开发,部署,调用一个Web服务. 这个工具有两种使用形式:批处理和Ant构建脚本.
wscompile -gen -classpath lib/foo.jar;lib/bar.jar -d generated config.xml wscompile -gen -f:infix:Name -d generated config.xml wscompile -define -f:nodatabinding -f:novalidation config.xml wscompile -import -f:explicitcontext config.xml |
Ant脚本,在Ant中使用这个任务前要先定义:
< taskdef name="wscompile" classname="com.sun.xml.rpc.tools.ant.Wscompile"> < classpath path="${classpath}"/> |
其中的类路径要指向以下档案库:
jaxrpc-api.jar jaxrpc-impl.jar jaxrpc-spi.jar saaj-api.jar saaj-impl.jar jaxp-api.jar dom.jar sax.jar xalan.jar xercesImpl.jar activation.jar mail.jar jax-qname.jar namespace.jar xsdlib.jar relaxngDatatype.jar |
例子:
< wscompile gen="true" base="${build}" features="explicitcontext" classpath="xyz.jar" debug="true" config="config.xml"> < wscompile import="true" keep="true" sourceBase="${source.dir}" base="${build}" model="model.xml.gz" PrintStackTrace="true" config="config.xml"> < classpath refid="compile.classpath"/> wscompile> < wscompile fork="true" define="true" nonClassDir="${wsdl.dir}" features="documentliteral, useonewayoperations" config="config.xml"/> |
1
2
3
下一页>>
|