快速业务通道

Java Web服务,第2部分: 深度探索Axis2:AXIOM - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
v="http://schemas.xmlsoap.org/soap/envelope/">    <soapenv:Header />    <soapenv:Body>     <qk:response xmlns:qk="http://seismic.sosnoski.com/types"       xmlns:tns="http://ws.apache.org/axis2">      <xop:Include href="cid:1.urn:uuid:966CA4565647BEBA3D115028348657315@apache.org"        xmlns:xop="http://www.w3.org/2004/08/xop/include" />     </qk:response>    </soapenv:Body>   </soapenv:Envelope> [actual binary data follows as separate MIME part with referenced content id] <?xml version=''1.0'' encoding=''UTF-8''?>   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">    <soapenv:Header />    <soapenv:Body>     <qk:response xmlns:qk="http://seismic.sosnoski.com/types"       xmlns:tns="http://ws.apache.org/axis2">rO0ABXNyACdjb20uc29zb...</qk:response>    </soapenv:Body>   </soapenv:Envelope>

Java Web服务,第2部分: 深度探索Axis2:AXIOM(6)

时间:2011-02-02 IBM Dennis Sosnoski

数据绑定挂钩

大多数 Web 服务开发人员需要以 Java 对象而不是 XML 文档(或者甚至文档模型,如 AXIOM)的形式使用数据。上一代框架,如 Axis 和 JAX-RPC,实现了自己的数据绑定,以便在 XML 和 Java 对象之间进行转换,但这是一种非常有限的解决方案。Web 服务框架中的数据绑定实现通常无法与专门的数据绑定框架相比,所以希望更好地控制 XML 处理过程的用户不得不将该框架与低效的转换代码结合在一起。因为这些问题,Axis2 重新进行了设计,以支持使用各种数据绑定框架作为数据绑定“插件”。

这种数据绑定支持使用对 Axis2 中包含的 WSDL2Java 工具的自定义扩展。该工具基于 WSDL 服务描述为客户端或服务器端消息接收者以存根的形式生成 Axis2 连接代码。客户端存根可作为代理进行服务的调用,它定义了实现服务操作的方法调用。服务器端消息接收者可作为客户端的代理,调用实际的用户定义的服务方法。当在 WSDL2Java 命令行中请求数据绑定时,该工具将调用指定的数据绑定框架扩展,在存根或消息接收者中生成在 OMElement 和 Java 对象之间进行转换的代码。在使用存根的情况下,在方法调用中传递 Java 对象(或原始值),并将经过转换的 XML 作为请求发送到服务器。然后将返回的 XML 重新转换为 Java 对象,再将后者作为方法调用的结果返回。服务器端的消息接收者以相反的方式进行转换。

在入站或分解端(将接收到的 XML 转换为 Java 对象),处理过程比较简单。需要转换为 Java 对象的 XML 文档负载可以通过 OMElement 的形式获得,并且数据绑定框架只需要处理该元素中的数据。OMElement 以 StAX javax.xml.stream.XMLStreamReader 的形式提供了对元素数据的访问,当前大多数的数据绑定框架可以直接使用 javax.xml.stream.XMLStreamReader 作为输入。

出站或封送端(将 Java 对象转换为传输的 XML)的处理稍微复杂一些。AXIOM 的关键思想是,除非在绝对必要的情况下,否则将避免构建完整的 XML 数据表示。要在封送时支持这个原则,必须有一种方式使得可以仅在需要的时候调用数据绑定框架。AXIOM 通过使用 org.apache.AXIOM.om.OMDataSource 作为数据绑定转换的包装来处理这个问题。OMDataSource 定义了相应的方法,以便使用 AXIOM 所支持的任何方法写出包装的内容

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号