blazeDS是Adobe公司为FLex与JavaEE通信推出的技术,在FLex与JavaEE通信时起到一个数据中间层的作用,与其相似的还有LiveCycle Data Service技术,但此技术需要付费使用,对于常规学习开发,blazeDS足以。
一、blzeDS下载地址
http://opensource.adobe.com/wiki/display/blazeds/BlazeDS
二、创建基于blazeDS的项目:
(我的环境jdk1.5+eclipse3.6+flexBuilder3+tomcat6.0)
1、建立一个web项目blazeTest。
2、解压下载blaze bin包中的blaze.war(不能直接解压时可以将其放入tomcat中启动让tomcat解开此包)。
3、用解压后blazeds文件夹中WEB-INF下得web.xml替换web项目中的web.xml(对于已有的web项目可以将其中的内容复制进去)。
4、将blazeds文件夹下的flex和lib文件夹copy到web项目的WEB-INF目录下,其中flex文件夹下是flex与java应用不同通信方式的配置文件,lib是必要的包;也可以修改这些配置文件的位置,但是注意在web.xml中也要修改相应servlet初始化时配置文件路径,见代码:
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<display-name>MessageBrokerServlet</display-name>
<servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
<init-param>
<param-name>services.configuration.file</param-name>
<param-value>/WEB-INF/flex/services-config.xml</param-value> </init-param>
<load-on-startup>1</load-on-startup>
</servlet>
5、建立一个java测试类:
package com.test;
public class Test {
public String test() {
return "balzeDS say congratulation to you";
}
}
6、配置flex目录下的remoting-config.xml文件
<destination id="Test">
<properties>
<source>com.test.Test</source>
</properties>
</destination>
7、服务器端搞定,发布项目等着Flex项目的访问。
Flex项目:
1、建立felx项目,application server type中选择J2EE,next,root folder选择web项目的根目录(WebRoot或WebContent),这样编译之后的文件可以自动更新到项目中。
2、编写测试代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script >
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private var result:String;
private function test():void {
ro.test();
}
private function resultHandler(event:ResultEvent):void {
result = event.result as String;
Alert.show(result);
}
]]>
</mx:Script >
<mx:RemoteObject id="ro" destination="Test" result="resultHandler(event)"/>
<mx:Button label="test" id="btn" click="test()" x="201" y="10"/>
</mx:Application>
此时需要刷新服务器端,让tomcat加载编译后的swf文件即包装页面。
在FLex中点击运行按钮即可访问包装页面。
点击Button测试,弹出服务器返回字符串说明成功。
常见问题:
1、如果Flex项目没有设置为自动编译,每次更改后需要手动编译,自动编译在project菜单下的第一项。
2、修改编译之后需要在JavaEE项目中刷新一下,这样tomcat才会重新发布,否则看不到修改后的变化。
3、确定代码中没有错,但是problems中仍有错误时,用project下的clean命令清理即可。