flex blazeds java_Flex使用Blazeds与Java交互及自定义对象转换详解

转于?http://www.cnblogs.com/RocD-DuPeng/articles/1751040.html

?

一、建立Flex与Java交互的工程。

本文中讲到的交互是利用Blazeds的,因为这个是免费的,呵呵,我是穷人。

首先就是去下载Blazeds的压缩包,这个可以从官网或者CSDN、JavaEye上下到。解压缩这个包,将里面的Blazeds.war解压,后面建立工程时要使用。

在MyEclipse中建立一个web工程,名为FlexTest。(注意:这个工程的JDK一定是1.5或以上版本,本文使用6.0)

将刚才解压的Blazeds.war包中的“META-INF”与“WEB-INF”文件夹以及文件夹中的内容拷贝到工程的WebRoot下。WEB-INF中包含有Flex的配置文件以及Blazeds需要的Jar包。这时我们就可以在这个工程中写入Java代码了。本文以一个用户列表为例,建立用户实体类。代码如下:

2B1B950FA3DF188F.gif代码

1 packagecom.rocd.flex.entity;2 3 ?importjava.io.Serializable;4 5 publicclassUserBeanimplementsSerializable {6 privateString userName;7 privateString password;8 privateintage;9 privateString email;10 11 publicString getUserName() {12 returnuserName;13 }14 15 publicvoidsetUserName(String userName) {16 this.userName=userName;17 }18 19 publicString getPassword() {20 returnpassword;21 }22 23 publicvoidsetPassword(String password) {24 this.password=password;25 }26 27 publicintgetAge() {28 returnage;29 }30 31 publicvoidsetAge(intage) {32 this.age=age;33 }34 35 publicString getEmail() {36 returnemail;37 }38 39 publicvoidsetEmail(String email) {40 this.email=email;41 }42 }43

复制代码

注意,由于这个实体类需要当做Java代码中方法的返回值传递给Flex中的AS代码,所以需要继承Serializable接口,否则将导致异常的发生。

然后,在建立一个供Flex调用的Java类。代码如下

2B1B950FA3DF188F.gif代码

1 packagecom.rocd.flex.biz;2 3 importjava.util.ArrayList;4 importjava.util.List;5 6 importcom.rocd.flex.entity.UserBean;7 8 publicclassUserManager {9 publicListgetUserList() {10 Listlist=newArrayList();11 for(inti=0; i<10; i++) {12 UserBean user=newUserBean();13 user.setUserName("用户"+i);14 user.setPassword("123");15 user.setAge(20+i);16 user.setEmail("user"+i+"@aaa.com");17 list.add(user);18 }19 returnlist;20 }21 }22

复制代码

这里就不连接数据库去操作了,因为本文重点放在Flex调用Java上,所以写个桩数据用以测试。

写完了这两个类,就需要在WebRoot/WEB-INF/flex/remoting-config.xml中配置用以调用这个Java类的信道了。具体代码如下:

2B1B950FA3DF188F.gif代码

1 <?xml version="1.0" encoding="UTF-8"?>2 4 5 8 9 10 11 12 13 14 com.rocd.flex.biz.UserManager15 16 17

复制代码

其中destination就是信道,properties是可以配置多个Java类,source是配置要调用Java类的包路径。

到此,Java部分的代码就写完了。下面是Flex中的代码。

在Flex Builder中创建一个Flex工程。名称为FlexApp。如图所示

79ED8E1EF1B73476.jpg

注意Project Location的Folder要选择MyEclipse建立的Web工程的WebRoot下。Server technology选择J2EE

点击[Next]按钮进入下一页。如图

DE87F4E24A2A59E5.jpg

注意Server location中Root folder要选择Java Web工程的WebRoot路径。Root URL是Java web工程的访问路径,由于使用的是Tomcat服务器,工程名为FlexTest,所以路径是http://localhost:8080/FlexTest/,而

Context root则是Java Web项目的工程名。完成后点击那个[Validate Configuration]进行验证,如果窗口上方显示如上图所示的“黄三角”就说明可以进行下一步操作了。

顺利建立完Flex工程后,需要注意是否报错,如果报错,请注意调整Flex SDK的版本。

没问题后,就要创建一个AS的类,用来接收Java程序的返回值了,也就是那个UserBean。代码如下:

2B1B950FA3DF188F.gif代码

packagecom.rocd.flex.entity

{

[Bindable]

[RemoteClass(alias="com.rocd.flex.entity.UserBean")]publicclassUserBean

{publicvar userName:String;publicvar password:String;publicvar age:int;publicvar email:String;

}

}

复制代码

这里[Bindable]是可绑定的,[RemoteClass(alias="com.rocd.flex.entity.UserBean")]是和Java代码中的UserBean类关联起来。这样就可以利用类型转换来将Java对象转换为AS对象了。

现在让我们在Flex中调用这个Java代码吧。代码如下:

1 <?xml version="1.0" encoding="utf-8"?>2 4 29 31 32 33 34 35 36 37 38 39 40 41 42

复制代码

启动Tomcat服务器后运行这个Flex程序,如下图所示:

E0F3053E2FA75198.jpg

?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值