快速业务通道

用Flash远程调用增强J2EE表示层 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
Service.getReportData();

如上例子说明了连接到J2EE Server和调用一个方法的过程。

为了处理实际的工作,必须在Flash客户端和J2EE Server上的企业资源之间相互传递参数。所有的远端调用都在异步方法中调用。为了支持从服务器上返回值,必须在Flash客户端添加回调函数。只要网关从J2EE服务器上的函数返回值该回调函数就被调用。为了支持函数回调,ActionScript函数的函数名必须与被调用的Java方法名一致。在如下的例子中,方法是getReportData(), 因此ActionScript回调函数应当命名为getReportData_result;

function getReportData_Result(result) { //Print the results from the app server to the //debug window trace(result); }

所有的方法调用信息,包括参数和返回值,都在客户端和服务器端以Action Message Format(AMF)的格式传递。AMF是二进制信息格式,通过HTTP以一种类似于SOAP(Simple Object Access Protocol)的方式传送。在网络中,AMF信息比SOAP信息要小得多,因而允许函数以更快的速度被调用。Flash Remoting透明地处理Java对象和ActionScript对象之间的所有映射。

使得Flash成为J2EE前端的一个重要的特性是它的内嵌的XML解析功能。Flash生来就能够在全部在客户机上处理XML解析和DOM(document.nbspObject Model)传递。如下的ActionScript代码解析一篇应用于2D图形中的包含x和y坐标的XML文档:

<graph> <point> <xvalue>10</xvalue> <yvalue>5</yvalue> <point> <point> <xvalue>20</xvalue> <yvalue>10</yvalue> <point> </graph>

用Flash远程调用增强J2EE表示层(4)

时间:2010-12-10

应用服务器上的一个产生图形文件文档的类:

public class FlashDemo { public FlashDemo() { } public document.nbspgetReportData() { document.nbspdoc =null; try { System.out.println("calling getReportData"); document.uilder builder = document.uilderFactory.newInstance().newdocument.uilder(); doc= builder.newdocument.); //Create a record as the root element Element element = doc.createElement("graph"); Element child1=doc.createElement("point"); child1.setAttribute("xvalue", "February"); child1.setAttribute("yvalue", "20"); element.insertBefore(child1, null); doc.appendChild(element);

这个简单的类将返回一个文档对象给Flash客户端解析; 下面的例子完成解析:

//Parse the XML document.nbspreturned by the server, //keeping the results in an array called nodes function parseXML() { //Create a new array called nodes nodes = new Array(); //Initialize the nodes array to //contain all of the children of the reportXML document.BR> nodes = reportXML.nodes; // childCounter is used as a counter for the child Nodes childCounter = 0; //childNodes will contain the children of each node childNodes = new Array(); //XAxisvalue will contain the x-axis value to plot xAxisvalue = new Array(); //YAxisvalue will contain the y-axis value of the data sets yAxisvalue = new Array(); //Iterate through the first level children of the XML Doc for (j=0; j<=nodes.length; j++) { //Check if the node Name is report i.e., the data set //belongs to graph if (nodes[j].nodeName == "graph") { //Get the background color of the graph b

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