扩展Axis2框架,支持基于JVM的脚本语言 - 编程入门网
扩展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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |