### flex+BlazeDS整合j2ee开发环境的配置过程详解
#### 技术背景与原理
Flex 和 BlazeDS 的整合是实现富互联网应用(RIA)的重要方式之一。Flex 是一款用于构建高度交互式Web应用的软件开发工具,而BlazeDS则是一个允许Flex和AIR客户端应用程序与Java服务器进行通信的开放源码服务器端Java库。通过这种整合,开发者可以在客户端使用Flex创建丰富的用户界面,同时利用BlazeDS与后端Java应用进行数据交换。
#### 技术准备
在开始配置之前,我们需要准备以下技术和工具:
- **BlazeDS**:一种基于服务器的Java远程控制和Web消息传递技术。
- **Adobe Flex**:一种用于构建和部署跨平台的富互联网应用程序的开源框架。
- **J2EE(Java 2 Platform, Enterprise Edition)**:一套全面的企业级Java应用平台。
- **开发环境**:
- MyEclipse 8.6:一款功能强大的集成开发环境(IDE)。
- FlashBuilder 4 Plugin:用于开发Flex和AIR应用的插件。
- JDK 1.6:Java Development Kit,用于Java程序的编译和运行。
- Tomcat 6.0:一款轻量级的Servlet容器,用于部署Web应用。
- Adobe Flash Player:用于播放Flex应用程序的客户端插件。
#### 配置过程详解
1. **下载并安装BlazeDS**
- 从官方网站(http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/)下载BlazeDS。
- 解压BlazeDS.war文件到Tomcat的webapps目录下,通常路径为`%TOMCAT_HOME%/webapps`,其中包含`WEB-INF`和`META-INF`等文件夹。
2. **创建Flex项目**
- 在MyEclipse中新建一个Web项目,命名为`flexDemo`。
- 在项目的`src`目录下创建一个Java类`HelloWorld`,实现基本的功能方法如`sayHelloWorld`。
3. **配置BlazeDS支持**
- 将`%TOMCAT_HOME%/webapps/BlazeDS/WEB-INF/lib`目录下的所有jar文件复制到`flexDemo`的`webRoot/WEB-INF/lib`目录下。
- 复制`%TOMCAT_HOME%/webapps/blazeds/WEB-INF/flex`目录到`flexDemo`的`webRoot/WEB-INF`下。
- 使用`%TOMCAT_HOME%/webapps/BlazeDS/WEB-INF/`下的`web.xml`文件替换`flexDemo`的`web.xml`。
4. **部署应用**
- 将`flexDemo`项目部署到Tomcat服务器中,并启动服务器。
5. **添加Flex支持**
- 右键点击项目名称,在菜单中选择“添加/更改项目类型”,然后选择“添加Flex项目类型”。
- 完成设置后,项目结构中会包含Flex相关的文件夹和文件。
6. **编辑Flex代码**
- 编辑`flexDemo.mxml`文件,定义UI组件和事件处理函数,使用`<mx:RemoteObject>`标签来连接到后端的Java方法。
- 修改`WEB-INF/flex/remoting-config.xml`文件,配置目的地和相关属性。
7. **运行测试**
- 运行`flexDemo.mxml`,检查是否能成功调用Java类的方法,并显示结果。
#### 示例代码
```xml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:RemoteObject id="say" destination="helloWorld">
</mx:RemoteObject>
<mx:Label x="109" y="82" text="name:" />
<mx:TextInput x="159" y="80" id="tiName" />
<mx:Button x="335" y="80" label="Click" click="remotingSayHello(event);" />
<mx:Label text="{say.sayHelloWorld.lastResult}" x="109" y="162" width="448" height="71" id="lblView" color="#FF0000" fontSize="20" fontWeight="bold" textDecoration="underline" fontStyle="normal" />
<mx:Script>
<![CDATA[
public function remotingSayHello(event:Event):void {
var iname:String = tiName.text;
say.sayHelloWorld(iname);
}
]]>
</mx:Script>
</mx:Application>
```
```xml
<destination id="helloWorld">
<properties>
<source>com.ljm.HelloWorld</source>
</properties>
</destination>
```
#### 结论
通过上述步骤,我们成功地配置了一个使用Flex和BlazeDS与J2EE后端整合的开发环境。这种方式不仅能够实现客户端和服务器之间的高效通信,还能够充分利用Flex的强大表现力和BlazeDS的高效数据处理能力,为用户提供优秀的用户体验。对于开发者而言,这种整合方式提供了灵活的架构和高效的开发手段,是开发高质量RIA应用的重要工具之一。