Flex 技术是一种完善的 RIA 技术,因此与 web 系统之间必然存在着千丝万缕的联系。随着 RIA 技术的不断成熟,现在越来越多的 java 开发者喜欢将其整合到企业级应用之中。本文是在项目:快速开发平台基础之上的一点学习心得与体会。主要从一下几个方面介绍:
1. Flex 开发模型的介绍
Flex 作为开发网络程序的一种技术,支持框架技术,完全支持 MVC 构建,我们可以使用其构建单一的表示层,也可以使用其面向对象的 AS 语言和 Flex 数据服务,构建程序的业务层和数据持久层。
Flex 的编译原理就是通过把 MXML 文件转换成面向对象的 AS 类,然后结合程序中指定的图片和声音等一些信息,统一编译成 SWF 文件。
系统运行后,当用户打开此网页的时候将下载 SWF 文件到 PC 机的内存中,这样在以后的交互中系统将只是传输关键的信息,不用刷新整个页面,提高了网络交互的速率。
![](http://blog.csdn.net/download/thumbnails/3408007/%E5%9B%BE%E7%89%872.jpg)
2 、 LCDS的介绍
LCDS(LiveCycle Data Service)之前叫做FDS(Flex Data Service),他是基于java(也有ColdFusion版的)后端的数据服务工程,功能包括映射Java对象到Flex对象(包括调用Java类 的方法)、RTMP(Real Time Message Protocol)、代理、服务端生成PDF等等功能,详细请参考 LCDS里的说明。官方有下载,需要注册会员(免费)。
LCDS实际是付费的,但是免费也能使用,似乎是少了多CPU的支持。当然还有一些其他的数据服务,比如AMFPHP之类的。当然,LCDS提供的 功能我们都能自己实现,并非Flex脱离了LCDS就不能和后台打交道了,除了RemoteObject还有WebSerivce、 HTTPService等等。只是说,LCDS提供了更多的方便和特性。
3、系统平台的构建
我采用的平台是JDK1.5+XP+Tomcat6.0,开发工具是flex插件+myeclipse6.0+struts+BlazeDS.
各个工具的安装比较简单,但是注意flex插件在myeclipse中的安装需要简单的配置。BlazeDS.我下载的是blazeds_turnkey_3-0-0-544。
3.1. 新建FlexLCDS工程
File -> new -> Flex Project ...
注:以下设置绝大多数都可以在项目属性中可以修改。
1). 向导界面1
![](http://blog.csdn.net/download/thumbnails/3408007/1.jpg)
2)向导界面2
![](http://blog.csdn.net/download/thumbnails/3408007/2.jpg)
其中Targetruntime需要自己配置。
3、按next最后生成的结构图如下:
最后就是发布到服务器中,如图所示:
![](http://blog.csdn.net/download/thumbnails/3408007/4.jpg)
这样你的mxml页面就可以通过服务器访问,如图所示:
![](http://blog.csdn.net/download/thumbnails/3408007/6.jpg)
但是你的jsp页面此事有可能不能访问,会出现异常,查了下是因为jdk版本的问题,必须是1.5。下面是struts页面图:
4、flex与java的交互,主要是配置文件remoting-config.xml。本文的主要配置如下代码所示:
<? xml version = "1.0" encoding = "UTF-8" ?>
< service id = "remoting-service"
class = "flex.messaging.services.RemotingService" >
< adapters >
< adapter-definition id = "java-object" class = "flex.messaging.services.remoting.adapters.JavaAdapter" default = "true" />
</ adapters >
< default-channels >
< channel ref = "my-amf" />
</ default-channels >
< destination id = "FirstJavaClassRemoteObject" >
< properties >
< source > com.test.FirstJavaClass </ source >
< scope > application </ scope >
</ properties >
</ destination >
< destination id = "UserServiceOblect" >
< properties >
< source > com.test.UserService </ source >
</ properties >
</ destination >
</ service >