- 浏览: 13388 次
最新评论
用Flash Builder 4 beta建立连接BlazeDS远程端的Flex应用程序
配置服务器环境
第一步,创建被Flex应用程序调用的Java类。本篇文章的应用程序使用了SimpleCustomerService类,这个类的方法被命名为getAllCustomers(),将在Flex应用程序中被调用:
public class SimpleCustomerService
{
public ArrayList getAllCustomers()
{
ArrayList customers = null;
//code to create ArrayList containing SimpleCustomer objects
return customers;
}
}
通过编译/java_src文件夹中的SimpleCustomerService.java和SimpleCustomer.java开始(或者你可以在/java_classes文件夹中提前编译类文件)。
用类文件创建Web应用,步骤如下:
1. 如果没有安装Tomcat,现在就请安装Tomcat,到http://tomcat.apache.org/*寻找下载信息和更多的细节。
2. 在Tomcat安装目录下找到webapps,在Windows操作系统中默认路径是:C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps。
3. 在webapps文件夹下新建文件夹,命名为samplewebapp,用来创建新的Web应用。
4. 拷贝Java类文件SimpleCustomerService.class和SimpleCustomer.class到webapps/samplewebapp/WEB-INF/classes下面。
安装BlazeDS
在你从Flex应用程序调用Java类之前,你必须用BlazeDS显示类作为远程服务终端。要为你的Web应用程序配置BlazeDS,你必须在Web应用源路径中部署BlazeDS JAR文件。安装BlazeDS步骤如下:
1. 下载最新nightly build of BlazeDS*二进制发布版本,它包含你需要的JAR文件和其他配置文件。如果你使用早期的BlazeDS或者LiveCycle Data Services ES版本,那么你需要执行除上述之外的步骤,在我的博客*中有关于这个话题的详述。
2. 解压你下载的zip文件,在文件夹中有blazeds.war,它包含配置BlazeDS 所需要的Jar文件和其他配置文件,blazeds-bin-readme.htm包含合同、条件和证书等细节。
3. 提取blazeds.war的内容到单独命名为blazeds的文件夹中(你可以用WinZip或者类似的工具解压WAR文件中的内容)。
4. 从blazeds/WEB-INF/lib中拷贝所有的JAR文件到samplewebapp/WEB-INF/lib。
5. 拷贝blazeds/WEB-INF/flex文件夹到samplewebapp/WEB-INF
这个文件夹包含BlazeDS配置文件。这个配置文件被用来配置远程、消息和代理服务。
6. 如果没有你想用的web.xml文件,拷贝blazeds/WEB-INF/web.xml到samplewebapp/WEB-INF
。
下面,你需要为BlazeDS Servlet添加 Servlet mapping命名为:MessageBrokerServlet,以便于当你用任一渠道支持向远程、消息或者代理服务发送请求时调用BlazeDS。
如果你正在使用你自己的web.xml文件,那么就需要添加以下代码,或者你可以从blazeds/WEB-INF/web.xml拷贝这段代码。
Flex Session attribute and binding listener support -->
flex.messaging.HttpFlexSession
MessageBrokerServlet
MessageBrokerServlet
flex.messaging.MessageBrokerServlet
services.configuration.file
/WEB-INF/flex/services-config.xml
1
MessageBrokerServlet
/messagebroker/*
Flash Builder 4用RDSDispatchServlet(绑定BlazeDS和LiveCycle Data Services ES2)来获得在Web应用中的服务端细节。如果你正在使用你自己的web.xml文件,那么就需要在你的Web应用中为RDSDisptachServlet添加Servlet mapping,通过拷贝下面的XML片段到节点下的samplewebapp/WEB-INF/web.xml文件中。
RDSDispatchServlet
RDSDispatchServlet
flex.rds.server.servlet.FrontEndServl et
useAppserverSecurity
false
10
RDSDispatchServlet /CFIDE/main/ide.cfm 创建远程目标
要显示Java 类作为远程目标你需要在节点下的samplewebapp/WEB-INF/flex/remoting-config.xml文件中添加节点,如下面所示。(在/config文件夹中你会找到remoting-config.xml和services-config.xml文件被用于应用程序。)
com.adobe.services.SimpleCustomerService
当你启动你的Web服务时,BlazeDS将暴露你的Java类作为一个远程终端,将SimpleCustomerServiceDestination作为id。
开发客户端应用程序
由于服务器已建立,你该准备用Flash Builder 4 来产生为消耗远程服务目标产生成代码。Flex应用程序将调用你在终端创建的getAllCustomers()
方法。
生成可以消耗远程服务终端的ActionScript代码,Flash Builder将向BlazeDS或者Adobe LiveCycle Data Services ES2发送请求以激活你在项目服务器设置中配置的Web应用程序并且检索外端服务器终端的细节。
以下是创建新的Flex项目的步骤:
1. 选择文件 > 新建 > Flex 项目。
图1.设置项目属性
2. 为项目命名为BlazeDSSample。
3. 选择Web (Runs In Adobe Flash Player)作为应用类型。
4. 选择J2EE作为应用服务类型。
5. 选择Use Remote Object Service,然后再选择BlazeDS(如图1所示)。
6. 点击Next继续。
图2.配置服务器设置
因为你在项目属性窗口中设置服务器的类型是J2EE,Flash Builder将提示你服务器设置。
7. 配置J2EE服务器,设置Root Folder(根文件夹):你在BlazeDS 中已经配置的Web应用中的根文件夹的路径。
8. 设置Root URL(根URL)为Web应用的URL的根目录;例如:http://localhost:9191/samplewebapp。
9. 设置Context Root(上下文根目录):Web应用的上下文根目录;例如:/samplewebapp。
10. 保留服务器上Output Folder(输出文件夹)的默认值。
11.点击Validate Configuration(验证配置)以检查服务器配置是否生效,如果没有生效,调整你的设置,再重新试一下。
12. 当你的配置生效后,点击Finish(完成)新项目的创建。
创建一个新的服务
在Flash Builder 4中创建一个新的服务,步骤如下:
1. 查找Flash Builder 4中Data/Services视图;如果视图没有打开,选择Window > Data/Services。
2. 点击Connect to Data/Service(链接到数据/服务)(或者choose Data > Connect to Data/Service), Flash Builder 4则显示一列从目前的Flex项目中可以被消耗的服务类型。
图3.选择服务类型
3. 在这个例子中,使用BlazeDS服务,所以如图3 所示选择BlazeDS。
4. 点击Next。
5. 如果Flash Builder 4提示RDS密码,选择不需要密码然后点击OK。(这个工作因为在web.xml中RDSDispatchServlet的useAppSecurity参数被设置为false。)
Flash Builder与服务器通信,显示一列外部服务目标列表,如图4 所示。
图4.有效终端列表
6. 从列表中选择SimpleCustomerServiceDestination并点击完成,如果你的应用不只一个目标,你可以选择列表中的任一目标,生成你想要的代码。
Flash Builder 4生成ActionScript类,这个类代表与选择的远程服务目标相关的Java类。在这个例子中,Flash Builder 4产生的类名为SimpleCustomerServiceDestination,它在SimpleCustomerService.java中显示的每个公用方法的参数。在服务器上调用SimpleCustomerService.java方法,你只需调用SimpleCustomerServiceDestination.as中相应的函数。你可以看到服务 (SimpleCustomerServiceDestination.as)和它的操作(代表服务器类的函数)列在Data/Services视图中。你也可以用Package浏览器看到代码。
如果任何自定义数据类型作为返回类型或者作为Java类方法的参数,Flash Builder 4将生成一个ActionScript类来代表与服务类文件一起的自定义数据类型。在这个例子中,getAllCustomers()返回一个含有 SimpleCustomer对象类型的ArrayList。ArrayList是建立数据类型并在默认下在客户端被转换成ArrayCollection。而SimpleCustomer,不是建立数据类型,所以Flash Builder 4在SimpleCustomer.java中为每个公用属性生成SimpleCustomer.as属性来代表从服务器返回的 SimpleCustomer对象。注意操作返回服务类型也要在基于Java类中返回类型的方法的Data/Services视图中恰当的被配置。
既然消耗远程服务目标所需的代码已经生成,下段中的步骤将显示在UI控件中来自服务请求的响应。
给UI组件绑定服务请求结果
Flash Builder 4也可以生成代码来调用服务请求并绑定服务请求结果给UI组件。在这个例子中,你将绑定getAllCustomers()操作结果给DataGrid。
1. 在应用程序设计视图中添加DataGrid组件。
2. 右击DataGrid选择绑定数据。
图5.选择服务和操作
3. 弹出绑定数据对话框,选择"新的服务请求(New service call)"。
4. 从"服务(service)"列表中,选择SimpleCustomerServiceDestination;从"操作(Operation)"列表中选择getAllCustomers():SimpleCustomer[],如图5所示。
5. 点击"完成(OK)"。
因为你选择了"新的服务请求(New service call)", Flash Builder 4将创建一个新的SimpleCustomerServiceDestination类的实例,并在当前MXML文件中创建一个 CallResponder类。如果SimpleCustomerServiceDestination实例已经存在,唯一的CallResponder 实例将被创建。CallResponder类帮助你管理asynchronous请求结果给RPC-based 服务。你会在Flex语言参数中发现更多关于CallResponder的细节。
注意:如果你在当前的MXML文件中已经有了服务请求并且你想绑定结果到UI组件上,那么在"绑定数据(Bind To Data)"对话框中选择现有的请求结果,并选择现有的服务请求。 保存你的应用程序并运行它。Flex应用程序在Web浏览器中发布后,它将调用服务器上的SimpleCustomerService Java类中的getAllCustomers()>loading... AddFeedbackCountStack("5816307") ) | 举报| 收藏
发表评论
-
C#写的COM组件注册问题兼论微软Regasm注册的BUG
2012-07-03 13:43 3669有时间的话,我会 ... -
Flex style - CSS 的使用
2012-07-02 12:14 630Dan Orlando, 软件架 ... -
Flex与Javascript之间的交互
2012-07-02 12:14 507最近做的一个项目要用到Flex与Javascrip之间的交 ... -
Flex 拖拽范例
2012-07-02 12:14 602Flex由于在其Framwork里加入了DragDrop管 ... -
Adobe Flex UIComponent LifeCycle
2012-07-02 12:14 657Adobe Flex UIComponent L ... -
实现FLEX 通过AMF跟PHP通信
2012-07-01 09:48 570AMF flex一种远调用 ... -
Flex style - CSS 的使用
2012-07-01 09:48 638Dan Orlando, 软件架 ... -
Flex学习笔记(1)
2012-07-01 09:48 7191.模块化Module 优点:主应用程序开始时不需马 ... -
[推荐]12-《PHP和MySQL web开发》第6章 面向对象的PHP 学习笔记
2012-06-30 16:11 637[推荐]12-《PHP和MySQL web开发》第6章 面向对 ... -
C++Directx11开发笔记二:Direct3D基础设备的初始化
2012-06-30 16:11 1545C++Directx11开发笔记二:Direct3D基础设备的 ... -
《移动应用的设计与开发》读书笔记
2012-06-30 16:11 1242《移动应用的设计与开 ... -
《高效程序员的45个习惯――敏捷开发修炼之道》 读书笔记(三)
2012-06-30 16:11 666《高效程序员的45个习 ... -
《敏捷软件开发(原则、模式与实践)》笔记
2012-06-30 16:11 772《敏捷软件开发(原则、 ...
相关推荐
用flex+spring+hibernate整合的一个小小的登陆实例,希望对学习flex+java通信开发的有点帮助吧
flex+BlazeDS整合j2ee开发环境的配置过程,实现flex调用java类
lib1,lib2下载不需要资源分,详细的开发环境搭建请参考我本人博客,另外flex整合java是使用了BlazeDS,我也提供了下载资源 搭建步骤:一,下载blazeDS 放到tomcat webapp下 二,下载flex+spring+struts2+ibatis ...
里面是自己找的一些flex整合java开发的资料,需要的同学可以看看。
MyEclipse:做Java开发都应该知道MyEclipse是比较好的J2EE项目的开发及部署工具的,我们主要用它来部署Flex和Java结合的项目。6.0是适合Eclipse3.3版的。他自带了一个Tomcat服务器 FB3:相比FB2,他在LCDS工程上做...
本教程通过图文介绍和对一些关键性的地方进行解释,让大家了解如何新建Flex的LCDS工程,并利用工具快速整合和部署J2EE项目和LCDS项目,掌握了简单的请求RemoteObject和配置的方法,初步掌握LCDS的应用之一。...
flex+EJB3.0整合开发实例,基于AMF3协议,使用JBOSS
2>FLEX和JAVA整合的技术文档。 【适用于】 1>FLEX入门 2>具有FLEX基础的JAVA程序员 3>具有JAVA基础的FLEX程序员 4>JAVA程序员 4>FLEX程序员 【目录如下】 Flex大礼包 └─Flex教程 第01章 Flex简介.ppt 第02章 ...
Flex+Blazeds与Java_Web_Project整合开发配置有图有真相[整理].pdf
我在原文的基础上做了修改,将原文中遗漏的地方加以补充,错误的地方加以修改,(这些都以红色标出,以示与原文的区别)一步一步做下来,肯定会实现Java与Flex完美整合的目的。在此对原作者表示感谢和敬意,同时也祝...
一个完整的flex与java整合的通信实例 文档中的详细步骤,是本人边开发边记录,并加上截图说明 保证是一个可运行的实例demo.
Flex 和 Java 的整合 Flex 3.2 LCDS 2.6.1 (LiveCycle Data Services) JAVA Servlet Apache fileupload 1.2.1 Spring 1.2 Hibernate 3.0
1:BlazeDS集成 Flex+Tomcat开发J2EE模块整合实例 2:Flex + LCDS + Java 入门教程 3:Flex+Java+Json+BlazeDS+MySQL资料 4:J2EE项目整合FLEX项目 5:在eclipse 的一个项目中同时开发j2ee模块和flex 客户端模块
三种方式介绍flex java 项目整合
讲述flex4与java开发的技术,具体用到了flex,spring讲bean暴露给blazeds框架,达到前台与服务器的通信!
在别人的基础上修改。 flex 整合Java开发
Flex cookbook、flex与java交互、As3 中文API、AS3 编程清晰版、使用AS组件、BlazeDS集成Flex开发J2EE实例、Flex+Java配置、Flex+Java+Json+BlazeDS+MySQL资料、整合Flex和Java--配置篇…… (全部是中文材料)
flex和java的整合,有需要的朋友可以下载,然后结合实际开发进行学习
Java整合Flex技术 使用BlazeDS和后端Java通信,Flex RemotingObject技术
NULL 博文链接:https://ltf1660.iteye.com/blog/518419