快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
,并把它交给应用。

下面的代码片段展示了调用Web服务的Jython客户端。

from org.wso2.wsf.jython.client import WSClient from org.wso2.wsf.jython.client import WSFault from org.wso2.wsf.jython.client import WSMessage req_payload_string = "<webSearch><appid>ApacheRestDemo</appid><query>Sri Lanka</query><form/></webSearch>" LOG_FILE_NAME = "/home/heshan/IdeaProjects/MRclient/src/jython_yahoo.log" END_POINT = "http://search.yahooapis.com/WebSearchService/V1/webSearch" try      client = WSClient({ "to" : END_POINT,         "http_method" : "GET",      "use_soap" : "false"},    LOG_FILE_NAME)   req_message = WSMessage(req_payload_string, {})   print " Sending OM : " , req_payload_string   res_message = client.request(req_message)   print " Response Message: " , res_message except WSFault, e:   e.printStackTrace();

扩展Axis2框架,以支持契约优先

Axis2代码生成器

提到代码生成,Axis2含有一个代码生成模块——Axis2代码生成器(Axis2 Code Generator)。代码生成器能合并多个数据绑定框架,而且易于扩展。因此代码生成工具可以进行扩展,以支持脚本语言。在深入扩展工具的细节之前,让我们先看看Axis2的代码生成器。

考量SOAP处理引擎时,一个关键的附加价值就是基于WSDL的代码生成。代码生成要能:

为用户提供方便——代码生成工具要帮助用户以简单、有效的方式使用框架。

充分利用框架。

现在来看看Axis2代码生成器的架构。

工具的架构非常简单。核心部分会处理WSDL文件、生成对象模型。然后根据模板解析生成的对象模型、生成源代码。

扩展Axis2的代码生成器,从而支持脚本语言

代码生成引擎逐个调用扩展,最终会调用组件Emitter。Emitter是代码生成流程中处理重要工作的真正组件。Emitter通常与语言相关,因此语言和Emitter是一一关联的。所以我们要有一个支持Jython代码生成的Emitter。上图说明了这一简单但功能强大的架构。

Emitter处理WSDL、生成对象模型。对象模型只不过是个XML文件,里面包含针对WSDL、关于Axis2信息模型(即Axis服务、Axis操作、Axis消息等)的对象模型。模板是XSLT文件,含有如何生成代码的信息。最后,生成的对象模型会根据模板进行解析、生成Jython源代码。

要支持契约优先的方法,需要为服务生成一个框架、一个消息接收者。已经写好的通用消息接收者运转不了,它只能在有限的Schema结构上运行。我们可以利用Axis2现有的基础设施来做到这一点。Axis2创建了一个表示WSDL的中间XML结构,我们必须根据该XML结构运行两个XSLT文件,来生成框架类和消息接收者。有了这些XSLT文件和代码生成工具,我们就能用Jython支持契约优先的Web服务了。最后,就可以使用消息接收者和框架来编写Jython实现的服务客户端了。

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

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

服务器端

本节将讨论如何将业务逻辑暴露为Web服务。

要在Axis2中暴露Jython实现的Web服务,可以从Axis2可插拔部署器的概念中找找解决方案。为了暴露用Jython编写的服务,我们要编写一个自定义的部署器、一个Jython消息接收者。

消息接收者消费SOAP消息,并把SOAP消息传给应用。消息接收者是输入管道中最后一个处理器。

部署器需要将Jython的数据类型映射到XML Schema数据类型。这个过程称

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