Data Service:Flex在J2EE企业级开发中的王道

过去的半年,因为对于Flex的认识较浅,全部采用的HttpService的方式构建的我们程序的通信,这里面java对象与as对象的映射与解析是一份工作量不小的工作,不是没考虑用DataSerive的RPC,因为考虑到收费就放弃了,前不久从InfoQ上一篇新闻得知,有开源的DataService:GraniteDS,而Adobe自己也在去年12月14日开源了一个:BlazeDS。
这下清除了我们成本和许可的障碍。前天下载了BlazeDS,稍微研究了一下,部署了一个应用。
结果非常的成功,一切都变得那么简单了,我们可以轻松的调用后台的Java方法。就好像调用flex本地的方法一样。而且不用写Java类和as类的映射(还是要写两行代码的,在映射的类上写这些:[Bindable] [RemoteClass(alias="Java全类名,自己替换")]),我昨天试了,非常好用。传参和返回值都是跟直接调flex的函数一样(除了是异步的。这里我们看得出Flex对Java是非常友好的),还没试异常。而且配置也是非常简单的,在WEB-INF/flex/remoting-config.xml 下配置一个类似这样的标签就可以了:
<destination id="product">
        
<properties>
             
<source>flex.samples.product.ProductService</source>
        
</properties>
</destination>
调用也非常简单(以mxml中的调用为例):    <mx:RemoteObject id="srv" destination="product"/> destination属性的值就是配置文件里<destination>标签的id属性的值,之后我们就能像使用as对象一样使用他了。
前后台的对象保持一致的办法也只是有一个什么样的Java对象就写一个什么样的as对象。


部署也非常简单,将BlazeDS下载到之后,解压完毕我们可以看到三个war包,三个文件夹,和一个license,其他的不看,三个文件夹分别是:
  • docs
  • resources
  • tomcat
顾名思义,第一个是文档(现在还不全,想看全的还得去网站上看在线的);第二个是一些可能会用到的资源,比如Jar包什么的;第三个是保存有例子的tomcat,webapps里面有三个web应用,分别对应那三个war包,但其中最有用的就是blazeds-samples这个了从里面我们可以看到所有丰富的例子,而且单击右键选择View Source还能看到代码,而blazeds就是我们部署一个基于BlazeDS的web应用的空文件夹,所有该web应用需要的Jar包和配置文件都全了,而且都在他们该在的文件夹里。不过你要真的跑起来,在你的tomcat里还要部署些server级的东西,那个就在我们的resources/security/tomcat里,参照该文件夹下的readme.txt部署。

另外,即便是对HttpService和WebService的应用方面他都有一个很好的框架,他还有一个message框架,目前我还不清楚是干什么用的,猜测也许像JMS。

在对J2EE的支持方面,GraniteDS号称已经支持EJB3.0,Spring,Guice,Seam,BlazeDS我还不知道,不过GraniteDS的作者对BlazeDS是持一个开放的态度的,且两者的开源协议是同一个,可以互相拷贝代码,所以我相信将来两者都会更强大。

简单的配置,清晰的结构,强大的功能。在试用之后,我坚信Flex中J2EE开发的王道一定是各种Data Service。
=========================
BlazeDS的网址:
http://labs.adobe.com/technologies/blazeds/

题外话,推荐一个Flex for Java的网址,希望对Java程序员有帮助:
http://flex.org/java/


posted on 2008-01-27 11:56 咖啡屋的鼠标 阅读(3469) 评论(6)  编辑  收藏 所属分类: Flex

评论

# re: Data Service:Flex在J2EE企业级开发中的王道 2008-01-28 09:33 itVincent

关注中  回复  更多评论   

# 我们怎么从来没碰到需要大量映射问题啊 2008-01-31 13:44 fiction

我们是使用Web Service来访问后台的,Flex得到的数据不需要映射,如果你想在Flex中对返回的对象进行强类型定义的话可以使用Adobe Compent Exchange网站中提供的FleXtense这个程序来帮你生成.
我们公司已经使用Flex+Spring+Xfire+Hibernate开了好几个政府的大型软件项目了,用户反响很好,主动要求我们以后的产品都用Flex开发  回复  更多评论   

# re: Data Service:Flex在J2EE企业级开发中的王道 2008-01-31 14:07 咖啡屋的鼠标

@fiction
十分感谢您提供的这条信息,对我可能会非常有帮助。

Web Service我没有搭建过,大概了解他是使用的XML通信,如果是XML的话,当然不用映射。我们可能是因为是采用的HttpService的缘故,后台写的代码没有为生成XML而进行过合理的设计,而且或许因为项目的特殊性也很难设计,我们的数据对象不是POJO,也不是数据库的数据,而是一些非结构化的对象,每一个取数据的操作都是一个底层API的访问。在后台将其转换成XML还是JSON都需要编码。这个过程主要是在后台,不是在Flex端。
  回复  更多评论   

# re: Data Service:Flex在J2EE企业级开发中的王道 2008-07-09 11:26 Ramon

Great information I got from you, thank you.  回复  更多评论   

# re: Data Service:Flex在J2EE企业级开发中的王道 2008-07-15 22:16 Y.Boy

马上留言以示支持!
呵呵,最近用到这个.  回复  更多评论   

# re: Data Service:Flex在J2EE企业级开发中的王道 2008-07-15 22:43 Y.Boy

哦,还有, 是用Flex builder 3还是Eclipse?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2008年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(15)

随笔分类(52)

随笔档案(76)

文章分类(3)

文章档案(4)

新闻档案(1)

收藏夹

Flex

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜