网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  用saaj1.2发送接收二进制web服务内容(一)     
  文章作者:未知  文章来源:水木森林  
  查看:79次  录入:管理员--2007-11-17  
 
  在写这篇文章的时候,大多数的web服务由简单的信息交换组成:客户端连接到web服务器端,并发送一条消息给服务端。web服务端处理客户端的请求并发送回应给客户端。这个简单的请求/回应模式,模拟了http协议帮助客户端/服务器端交互的过程。同样由于http,web服务信息的交换经常必须包含二进制的内容。比如图像,文档或者声音片段。这篇文章介绍了使用saaj1.2(soap with attachements api for java 1.2)来发送和接收二进制内容web信息。
  
  在深入到传送二进制web服务内容的复杂机制前,值得指出的是:简单的请求/回应类型的web服务,与客户端/服务器端的远程过程调用(rpc)方式不同。在rpc中,服务器给出一个类似api的接口。而客户端通过使用远程调用服务的api,传递必要的参数和接收调用值来启用一个服务。
   
  基于xml的rpc调用类似在oo系统中调用一个对象一样。事实上,当你用基于xml的java api工作时(java api for xml-based rpc简jax-rpc),你总是觉得在跟java对象工作,而不是跟xml文档工作。jax-rpc能让你把web服务看作远程对象,这很像java rmi(remote method invocation)。jax-rpc运行时把高层次的oo方法调用转化为远程web服务需要xml文档。虽然rpc类型的web服务通常能提供更便捷的编程模型,但是rpc调用也必须依赖更低的消息层来完成组成远程调用xml信息交换。
  
  对于有些web服务来说,直接在低级别的消息层编程通常是很有用的。例如,如果你想调用一个处理订单的文档并返回收据,对这样的web服务,你能够很容易地把文档交换模块化为一个请求/回应的信息交换。替代远程方法调用的是,你将构建xml信息,直接发送这些信息到web服务,如果有的话,还会处理服务的xml回应。由于soap为web信息服务定义了公共的信息格式,你需要构建符合soap格式的信息,并且,一旦服务有回应,就要把这些soap回应信息解析成你的程序所能理解的格式。
  
  saaj提供了一个能方便地构建和读取soap信息的库,这个库还允许你通过网络接收和发送soap信息。saaj定义了javax.xml.soap包。在这个包里面的类组成了最初的jaxm(java api for xml messaging),但是最近他们被分离出来成为单独的api。jaxm依赖于saaj来构建和处理soap信息,并且依赖saaj来增加信息的可靠性和增加其他的xml信息特征。尽管saaj是j2ee的一部分,jaxm却不是。这篇文章聚焦于saaj中最有用的一个方面:就是saaj捆绑二进制内容到soap信息的能力。
  
  使用附件的好处
  尽管soap的设计核心集中在信息中封装xml文档,但是,soap的附件特征扩展了soap所能包含的信息,除了普通的soap部分,还可以包括0个到多个附件,如图1所示。每一个附近都由一个mime类型定义,并且能采用任何的二进制流内容。
  
 用saaj1.2发送接收二进制web服务内容(一)(图一)

  
图1:带有附件的soap信息

  当客户端希望传送二进制数据的时候,soap的附件特征是非常有用的,比如传送图像,音频数据给一个web服务。如果没有soap附件,发送一个二进制信息会困难很多。比如,一个客户端的soap信息传送二进制文件的url地址。那么,客户端不得不操作一个http服务器,来让web服务找到这个二进制文件。这会给web服务的客户端造成过度的负载,特别是当客户端运行在资源有限的设备中,比如数码相机或者扫描仪。soap的附件能力使得任何的web服务客户,能够在soap信息里直接传送内嵌二进制文件的soap信息。
  
  soap附件,已被证明能很方便地与网络站点入口交互。考虑这样一个现实中的房产代理网络,它需要发送房子的介绍和照片到房产查询中心入口。如果这个入口操作一个servlet来让带附件的soap信息置入,一个房产代理可以用几个soap信息更新它的列表,包括这些房子的照片。soap信息体可能嵌入了房子所有权的介绍,并且soap附件能带有房子图片文件。在这样的情况下,当一个入口操作servlet接收了这种信息,它就能返回一个认证文档,表明了在入口的发布的有效性。图2说明了这样的一个web服务。
  
用saaj1.2发送接收二进制web服务内容(一)(图二)

  
房产代理的web服务,使用了带附件的soap信息
 
 
上一篇: 关于 java web start 是干什么用的    下一篇: 用saaj1.2发送接收二进制web服务内容(二)
  相关文档
深入了解"java"中的“异常机制” (1) 02-22
websphere mq程序设计初探 11-17
web开发轻平台-tomcat(简介) 11-17
在java中发送邮件的一个相当完善的脚本 11-17
corba与java的结合使用 11-17
动态调用动态语言之java脚本api 11-17
开源框架hibernate 3 的formulas(图) 11-17
五个反对向.net移植java ejb应用软件的理由 11-17
[webservices]xfire web服务的单元测试 11-17
processbuilder调用外部命令 并返回结果 11-17
java中常用的加密算法应用md5,sha,rsa 11-16
进阶:当前流行的j2ee web应用架构分析 01-09
基于struts和hibenate的发布系统研究 11-17
1年java历程的回顾、反思与展望(上) 11-16
用 websphere studio 创建 jsf 提交表单(2) 11-17
spring入门书籍 11-17
sun将升级高端unix服务器 ultrasparc 11-17
初学者入门经典:java环境配置大全 11-17
在java中保留stereotype 11-17
利用java api打印jtable 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息