前一段时间一直在郁闷Flex与Java的交互问题,找了好多书,也在网上搜索了好多内容。关于这个问题的解决办法可谓五花八门。主要还是Flex进行数据交互的三种方式:通过Html传递,其中可以直接获取消息参数、或者通过传递XML文件来实现消息传递,但是这只限于字符串等简单类型的数据,无法传递自定义类的对象;通过远程调用对象方式实现传递,这种传递方法支持复杂的数据结构类型;以调用WebService的方式传递参数,即把Java类所实现的功能看成是一个WebService,通过发送调用消息与必须的参数来调用Java类中的方法,从而得到返回值。(关于调用Web服务的相关例子参见《使用AXIS调用WSDL描述的Web服务》和《使用AXIS调用WSDL描述的Web服务(续)》)。
下面主要对RemoteObject方式与Java交互方式进行一下总结。RemoteObject方式需要有数据服务工程来实现交互。而于Java交互的数据服务工具主要有LCDS和BlazeDS两种(实际上是一种,BlazeDS是LCDS的子集)。
LCDS(LiveCycle Data Service)之前叫做FDS(Flex Data Service),他是基于java(也有ColdFusion版的)后端的数据服务工程,功能包括映射Java对象到Flex对象(包括调用Java类的方法)、RTMP(Real Time Message Protocol)、代理、服务端生成PDF等等功能,详细请参考LCDS里的说明。官方有下载,需要注册会员(免费)。
其实BlazeDS可以看成是LCDS的简化版,它少了后者的Data Management Service高级功能,目前不支持RTMP(Real Time Message Protocol)协议。
如果使用的是BlazeDS,一种简单的环境设置方式就是:把BlazeDS.war解压,放在Tomcat的发布目录下,并且修改其中的配置文件,以声明要用到的Java类,然后再编写Flex页面时就可以直接调用该Java类了,前提是要把涉及到的Java类的编译后的.Class文件(即/bin/目录下)放在Class目录中。
使用LCDS的原理与BlazeDS是一样的。但是这样来开发工程会很繁琐,每次都要把更新后的.Class文件复制到Tomcat下才能更新。所以需要利用Eclipse的WTP插件来实现工程的自动部署,而这样问题的关键就在于如何整合一个Flex工程和一个WTP工程,或者说是如何时一个工程同时具有Flex和WTP工程的特性。当然,这对于Eclipse来说是可以胜任的。
WTP与Flex整合开发环境搭建步骤参见:
http://www.scribd.com/doc/2369653/Flex-LCDS-Java- 很不错~~~
posted on 2008-09-29 23:35
胖胖泡泡 阅读(2677)
评论(0) 编辑 收藏