前提:一个blazeds-turnkey,是adobe官方提供的访问远程java对象的工具,相关基本概念可参考:http://baike.baidu.com/view/1921230.html,官方文档去http://help.adobe.com/en_US/LiveCycleDataServicesES/3.1/Developing/index.html查看,因为对于最新的blazeds,adobe已经不提供独立的文档,可以参考这个地址的文档。还需要一个可用的5.5以上版本空的tomcat,不要按照某些说法拷贝blazeds的项目包进去,也不要用blazeds自带的tomcat,那个里面包含了很多例子值得参考,你可以独立启动,接着启动它自带的数据库,然后学习示例。本例不要把那些东西搅在一起了,切记!
这里介绍使用eclipse插件版flashbuilder创建一个flex项目和一个web项目,然后在flex项目中访问web项目中定义的远程javaservice类:
说明:插件版安装完成后点击右上角的open perspective 按钮,添加flex的透视图,会自动弹出一个flash builder的启动页(或者点击help也可以找到这个页面),会给你一些文档的链接,以及提供本地离线文档的下载,是非常值得参考的资料!
第一步:创建动态web项目:
点击文件创建一个dynamicweb project,我取名为:FlexWebTest,然后找到blazeds的解压目录,找到路径:\tomcat\webapps\blazeds,copy下面的两个目录,替换掉FlexWebTest中的webContent目录下的文件得到右图的结构:
其中flex目录下是flex访问远程java对象的相关配置文件messaging-config.xml是配置消息服务的,proxy-config.xml是配置代理服务的,service-config.xml是配置通道与端点的,remote-config.xml是配置远程要被访问的java对象的。
lib目录是必须得一些消息服务的jar包,封装了一些网络操作。
下面主要看一下web.xml自带的相关的配置:
<!-- HttpFlex Session attribute and binding listener support -->此注释下面的一段是配置监听器,支持flex的session和http的session同步。
<!--MessageBroker Servlet --> 这一段指示的是核心的监听flex端请求消息的servlet,可以自定义配置文件的位置。
<!-- beginrds 这一段注释掉的是在flashbuilder中用配置数据与服务的方式访问远程对象时候要用到的。去掉注释,然后在flashbuilder中可以用可视化的方式配置数据与服务。
运行应用只要http://localhost:8080/FlexWebTest/messagebroker/amf(这个是一个默认的基于servlet的通道访问地址,配置在web.xml中,当然也可以可以添加自定义通道)能够正常访问即可!
第二步:创建service类返回一个java对象并配置这个类:
首先创建一个model:com.mangocity.model.User如下,注意需要添加getter/setter
package com.mangocity.model;
import java.util.List;
public class User {
privateString id;
privateString userName;
privateString password;
privateint age;
privateList<String> friends;
}
然后创建一个service类:com.mangocity.service.UserService,添加一个得到user的方法:
package com.mangocity.service;
import com.mangocity.model.User;
public class UserService {
publicUser getUser(){