- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Axis2 体系结构AXIS 对象模型(AXI Object Model,AXIOM)是 Apache Axis2 的 XML 对象模型。Axiom 之上的内核层包含引擎、模块和部署框架。在 Axis2 的核心部分没有特定于 Java? 的概念。所有其他组件都在内核之上的层中。各种传输协议(如 HTTP 和 SMTP)和数据绑定(在 XML 和 Java 代码之间进行转换)并不在核心中,因为它们是可插入的,因此提供了很大的灵活性。所有其他相关技术(如 Java API for XML Web Services (JAX-WS))都在 Axis2 之上的层次中。我们现在将分析 Axis2 的以下组件:
AXIOM(新 XML 信息集表示形式)
可扩展消息传递引擎
可插入模块体系结构
经改进的部署模型
新客户机 API
可插入数据绑定
代表性状态传输(Representational State Transfer,REST)支持
AXIOM
AXIS 对象模型 (AXIOM) 是一个 XML 对象模型,设计用于提高 XML 处理期间的内存使用率和性能,基于 Pull 解析。通过使用 Streaming API for XML (StAX) Pull 解析器,AXIOM(也称为 OM)可以控制解析过程,以提供延迟构建支持。延迟构建是指 AXIOM 不完全构建对象模型,模型的其余部分基于用户的需求构建。以下示例对此概念进行了说明:
假定某个用户需要从 XML 输入流中获得第一个人的 Location 元素值,AXIOM 构建的对象模型将一直包含到 Location 元素结束的内容,而让其他内容保留在流中:
Persons
Person
NameDihini Himahansi/Name
SexFemale/Sex
LocationColombo, Sri Lanka/Location
--- Object model is being built only up to this point
/Person
Person
NameThushari Damayanthi/Name
SexFemale/Sex
LocationElpitiya, Sri Lanka/Location
/Person
/Persons
这里的优势在于,尽可能仅使用能满足用户的需求的内存。如果用户希望访问较大的文档中前面的数个字节或数千字节,则延迟构建功能将改善该应用程序的内存需求情况。
可以从任何元素获得 StAX 事件,而不管是否完整构建了对象模型。在有些情况下,Axis 2 中的此功能非常有用。例如,当 Axis2 作为中介传递时,如果需要仅读取 SOAP 消息的 Header,AXIOM 将防止其读取整个 SOAP 消息,使其具有很高的内存效率。另一个例子是,当 Web 服务实现能够直接使用 StAX 事件时,由于采用了 AXIOM,Web 服务所需的内存非常小。
此外,AXIOM 内置了消息传输优化机制(Message Transfer Optimization Mechanism,MTOM)支持。对于 AXIOM 体系结构,可以通过实现 AXIOM 接口并将其插入到 Axis2 中来执行自己的对象模型。
由于 AXIOM 最初是作为 Axis2 的对象模型而开发的,因此 AXIOM 提供了构建于基础 AXIOM API 之上的 SOAP 接口。这允许您使用 envelope.getHeaders 和 envelope.getBody 之类的便利方法查看 SOAP。可扩展消息传递引擎引擎通过传输协议接收到消息后,将调用之前注册的一系列拦截器(称为处理程序)。处理程序通常处理 SOAP Header 内的信息,不过并不限制同时对消息的其他部分进行处理。随后会将消息传递给消息接收者——消息的最终接收方。消息接收者同时也负责对消息进行相应的处理,大部分时候都会将此消息传递给服务实现类进行处理。可以使用一组关系对 Axis2 的核心消息处理部分进行建模。Axis2 引擎的传入消息会通过“In”管道。所有传出消息都会通过“Out”管道。组合使用不同数量的 In 和 Out 管道,Axis2 可以处理任何 MEP。例如,可以使用一个 In 管道和一个 Out 管道来支持进行 In-out 交互。可以使用一个 In 管道来支持 In-Only 交互。这些管道之间的连接由消息接受者进行。
Axis2 可以处理 Web 服务描述语言(Web Services Description Language,WSDL)2.0 规范中定义的大部分 MEP,且可以扩展为支持
文档评论(0)