Eclipse 中用Flex插件 BlazeDS 开发Flex web应用

前言

这几天在搞Flex 开发,记录下开发过程,是一个总结也给和我一样的人一些帮助。

工具环境

工程建立

在eclipse中 File –> New –> Dynamic Web project

然后点击“Next” 把“src” Remove后添加一个“javasrc”(不改容易和flex的src混淆)

点击“Next” 把Content directory 改成“WebRoot”(当然不改也可以),点击“Finish”

把blazeds-spring中的文件拷入项目的WebRoot下

blazeds.war

然后在WebRoot 下新建一个index.html,并且把classes的路径修改一下那个buid文件夹就可以删除掉了

项目右键 Run As –> Run on Server 选择tomcat就ok
没有错误的情况下项目右键 添加/更改项目类型 — 添加Flex项目类型 直接下一步,完成就可以

ps:(如果前边没配置flex sdk的话 按提示配置一下就可以),此时项目会有个错误,选中右键 创建html模板 就可以解决

项目右键 Properties –> flex 服务器 配置如图

新建一个名字为HelloWordService的java类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.dome.service;

import org.springframework.flex.remoting.RemotingDestination;
import org.springframework.flex.remoting.RemotingInclude;
import org.springframework.stereotype.Service;

@Service("HelloWordService")
@RemotingDestination(channels={"my-amf"})
public class HelloWordService {

@RemotingInclude
public String sayHello(){
return "HelloWord!";
}
}
修改web.xml,把rds的注释去掉并把true改为false
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!-- begin rds -->
<servlet>
<servlet-name>RDSDispatchServlet</servlet-name>
<display-name>RDSDispatchServlet</display-name>
<servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class>
<init-param>
<param-name>useAppserverSecurity</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>messageBrokerId</param-name>
<param-value>_messageBroker</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>

<servlet-mapping id="RDS_DISPATCH_MAPPING">
<servlet-name>RDSDispatchServlet</servlet-name>
<url-pattern>/CFIDE/main/ide.cfm</url-pattern>
</servlet-mapping>
<!-- end rds -->
启动tomcat
点击 数据/服务 面板的 “连接数据/服务”

然后再弹出的窗口中选择BlazeDS S –> Next –> 选不需要密码- –>ok

选择刚才发布的服务,完成

在helloWordDome.mxml设计视图下右键 点击“生成服务调用” 选择ok
添加一个Button组件,右键生成click处理函数
切换到源码视图找到services:HelloWordService/标签添加endpoint属性
1
2
3
4
<services:HelloWordService id="helloWordService" fault="Alert.show(event.fault.faultString + 
'\n' + event.fault.faultDetail)"
showBusyCursor="true"
endpoint="{&apos;http://{server.name}:{server.port}/helloWordDome/messagebroker/amf&apos;}"/>
在click函数里处理后台传来的数据
1
2
3
4
protected function button1_clickHandler(event:MouseEvent):void
{
Alert.show(sayHelloResult.lastResult);
}
右键 Run As – web应用程序,在页面上点击按钮 弹出HelloWord! 说明成功了

结语

有不对的地方欢迎指正!!!
helloWordDome.rar (2.3 MB)