快速业务通道

扩展Axis2框架,支持基于JVM的脚本语言 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

扩展Axis2框架,支持基于JVM的脚本语言

时间:2010-10-26 infoq 译:王丽娟

本文介绍了如何扩展Axis2框架,以支持Jython、JRuby等基于Java虚拟机(JVM)的脚本语言。文章对这一主题进行了高层次概述,包括 Apache Axis2的一些关键概念,以及如何利用Axis2为基于JVM的脚本语言提供扩展。读完此文,开发人员可以扩展Axis2框架,来支持基于JVM的脚本语言。Axis2框架扩展之后,可以轻松做到如下两点:

将脚本开发为Web服务。

用所选的脚本语言编写服务客户端。

Apache Axis2是开源的Web服务引擎。它对应用广泛的Apache Axis SOAP堆栈进行了彻底的重新设计和编写。Axis2不仅能为Web应用添加Web服务接口,还能作为独立的服务器应用运转。Apache Axis2支持SOAP协议,也支持备受欢迎的REST风格Web服务。使用Axis2,你可以将业务逻辑实现暴露为WS-*风格的接口,与此同时,也可以将该实现暴露为REST/POX风格的接口。

设计JVM的初衷仅仅是为了支持Java编程语言。但随着时间的流逝,越来越多的语言移植到了Java平台,其中包括很多脚本语言。JVM现在支持诸多脚本语言,比如Jython、JRuby、ColdFusion等。简单起见,本文选择了Jython,不过描述的技术同样适用于其他语言。

Jython是Python编程语言的Java实现。它取Java、Python两者之所长,是这两种语言的混合编程。由于Jython是完全用 Java编写的,所以用Jython编写的脚本能运行在任何兼容的JVM上,并能使用现有的Java库(这些Java库得是Python模块)。

Web服务的实现方法

Web服务是构建面向服务的体系架构(SOA)的一组技术。尽管SOA和Web服务之间的关系通常很容易混淆,但Web服务是一种实现技术,它采用标准协议来执行SOA,理解这一点很重要。开发Web服务的技术中,使用较为广泛的两种是代码优先和契约优先:

使用代码优先的方法,主要关注点是给出代码;你要先编写Java代码,再根据Java代码生成Web服务契约(WSDL)。相比之下,契约优先强调的则是服务契约;你先编写WSDL契约,然后使用Java或代码生成工具实现该契约。契约优先的方法有一些好处,它能促进:

应用之间的松散耦合

多个服务之间的互操作性

抽象的使用,从而隐藏底层的实现细节

所有参与方之间的协作和一致的达成

代码优先的方法则有如下优势:

简单、省时

能将遗留系统暴露为Web服务

不用深入了解WSDL的相关知识

这就是说,在设计服务契约时,你可以在代码优先和契约优先两种技术中择其一。最终的决定则取决于你是更想确保互操作性,还是更想提高生产力。本文将展示如何扩展Apache Axis2,使其对两种方式都进行支持。

扩展Axis2框架,以支持代码优先

Axis2包含一个基于XML的客户端API,功能甚为强大。这个API可用来开发Java服务客户端。现在的需求是用脚本语言编写服务客户端,我们选择Jython进行演示。

要让Jython与Axis2客户端库协作,我们需要开发Axis2客户端API的包装库。开发该包装库的目的是在现有功能主体之上创建一个抽象层。此时,我们要重新定义Axis2客户端API的接口,使其能接受Jython脚本。

扩展Axis2框架,支持基于JVM的脚本语言(2)

时间:2010-10-26 infoq 译:王丽娟

上图显示了API的架构。当执行Jython客户端脚本时,会创建并执行一个相映射的Java服务客户端。接着会进行Web服务调用,将结果返回给客户端脚本。

通过客户端API发送SOAP消息时,会激活输出管道(Out Pipe)。输出管道将调用各个处理器,最终由传输发送者(Transport Sender)把SOAP消息发送给目标端点。SOAP消息由传输接收者(Transport Receiver)接收,传输接收者会读取SOAP消息、启动输入管道(In Pipe)。输入管道由一些处理器组成,终端是Jython消息接收者(Message Receiver),Jython消息接收者会消费SOAP消息

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号