背景介绍:
因为需要进行比较复杂的前台展示,主要是做网络拓扑图这部分的展示工作,决定在前台使用flex技术,但是后台以及其它大部分的前台仍然采用jsp技术来展示,因此现在需要将flex和struts所搭建的完整的web系统之间建立一个通道
Web系统环境:
Maven+Struts2+Blazeds+Hibernate+Mysql+Flex
环境:
MyEclipse8.5+FlashBuilder4.5
配置主要步骤:
1. MyEclipes部分因为是已经成熟的系统,这里就不多做介绍了,主要是对于flex部分的介绍
2. 首先,下载FlashBuilder4.5并安装FlashBuilder_4_5_LS10.exe。
3. 简单地熟悉了flex的一些基本操作:
http://www.adobe.com/cn/devnet/flex/quickstart/your_first_application/
4. 安装AdobeFlashBuilder451PatchInstaller.zip
5. 安装FlashBuilder4.5的eclipse插件
第一步:到flashbuilder4.5的安装目录,运行下图的程序
第二步:
安装完成之后打开Eclipse 3.5.2 中的 dropins 目录,把里面的 com.adobe.flexbuilder.feature.core.nl1.link 文件复制到 MyEclipse 8.5 中MyEclipse 8.x Latest/dropins 目录
第三步:
打开Myeclipse8.5,新建项目,如果出现下图所示情况,则安装插件成功:
3. 下面安装blazeds.war
blazeds是一套面向actionscript的前后台通信框架。
在服务器端,blazeDS以servlet的方式存在于java应用服务器上。它默认提供3中服务,远程调用
(在remoting-config.xml中配置)、访问代理(proxy-config.xml)、消息服务(messaging-config.xml),同时框架允许你添加自定义的服务(在services-config.xml中配置)。
第一步:下载个Blazds的包,解压
第二步:将blazeds导入工程
6. 创建java类-
包:com.swq.services; 类名:DemoService
/**
*
*/
package com.swq.services;
/**
* @author Administrator
*
*/
public class DemoService {
/**
*
*/
public DemoService() {
// TODO Auto-generated constructor stub
}
/**
* 接收参数name并响应信息到flex端
* @param name
* @return
*/
public String sayHello(String name){
return "Hello "+name;
}
}
7. 修改remoting-config.xml
"1.0" encoding="UTF-8"?>
class="flex.messaging.services.remoting.adapters.JavaAdapter"
default="true"/>
8. 修改web.xml;修改struts过滤器,这个也是最重要的一部
"1.0" encoding="UTF-8"?>
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
9. 在FlashBuilder中建立工程flexdemo
启动web工程,然后验证配置显示如下:
10. 编写xmxl文件
xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
import mx.controls.Alert; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; [Bindable] public var tempString:String = ""; protected function button1_clickHandler(event:MouseEvent):void { myService.sayHello(input.text); } protected function myService_resultHandler(event:ResultEvent):void { tempString += event.result +"\n"; outPut.text = tempString; } protected function myService_faultHandler(event:FaultEvent):void { Alert.show(event.fault.message); } ]]> result="myService_resultHandler(event)" fault="myService_faultHandler(event)" showBusyCursor="true"/>
11. 运行flashbuilder,如下图所示:
http://help.adobe.com/zh_CN/Flex/4.0/AccessingData/WS2db454920e96a9e51e63e3d11c0bf69084-7fda.html
http://www.cnblogs.com/RocD-DuPeng/articles/1750382.html
http://www.cnblogs.com/RocD-DuPeng/articles/1751040.html
http://blog.163.com/jiang_tao_2010/blog/static/12112689020091118549424/
http://blog.csdn.net/attilax/article/details/6215133
http://www.adobe.com/devnet/flex/articles/fullstack_pt1.html