天气正好,趁着上一篇Ubuntu安装笔记新鲜出炉,顺便把之前做的Flex+BlazeDS笔记也共享出来~
什么是BlazeDS呢?BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,它能够使得后台的Java应用程序和运行在浏览器上的Flex应用程序相互通信。
本文假定电脑配置如下:
1、 win 7
2、 Tomcat 7.0 [tomcat-home]=D:\Tomcat 7.0\
3、 Tomcat服务器端口:8080
4、 Flash Builder 4.6
5、 JDK 1.7.0
一、在开始之前,需要安装JDK和Tomcat并实现成功配置。
1. 下载JDK和Tomcat
JDK:http://www.oracle.com/technetwork/java/index.html
Tomcat:http://tomcat.apache.org/index.html
2. 安装和配置JDK和Tomcat:执行相应安装程序,先安装JDK
(1)安装JKD后,需要配置环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:(假定JDK安装路径为D:\Java\jdk1.7.0_07)
JAVA_HOME=D:\Java\jdk1.7.0_07)
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因为它代表当前路径)
修改环境变量(在原变量后添加,以“;”隔开)
path=%JAVA_HOME%\bin
打开命令提示符窗口(cmd.exe),输入javac命令,出现下图提示则配置成功
(2)安装Tomcat后,添加一些环境变量(假定安装路径为:D:\Tomcat7.0):
CATALINA_HOME=D:\Tomcat 7.0
CATALINA_BASE=D:\Tomcat 7.0
TOMCAT_HOME:=D:\Tomcat 7.0
然后修改坏境变量中的calsspath,修改后如下:
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\lib\servlet-api.jar;
接着启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。
二、下载BlazeDS:
1、 网址 https://www.adobe.com/cfusion/entitlement/index.cfm?e=lc_blazeds
2、 下载“BlazeDS binary distribution”
http://download.macromedia.com/pub/livecycle/blazeds/4_0/blazeds-bin-4.0.0.14931.zip
把.zip中的 blazeds.war文件解压到这个目录下:[tomcat-home]\webapps
3、 如果Tomcat正在运行,请停止它然后再启动它(就是重启Tomcat)
4、打开目录:[tomcat-home]\webapps
i. 你应该会看到一个名为“blaseds”的文件夹
ii. 在blaseds文件夹里,会有一个名为“WEB-INF”的文件夹
iii. 在WEB-INF文件夹里会有很多文件夹,其中有一个名为“classes”的文件夹,Flex应用程序需要使用到的Java class就是放到这个文件夹里的
iv. 还有一个名为“flex”的文件夹,它里面有一个remoting-config.xml,我们要在这个remoting-config.xml文件里添加destination结点来告诉Flex应用程序如何连接上Javaclass
三、使用文本编辑器编写以下这个Java文件并命名为“HelloWorld.java”:
package cn.riahome.java;
public class HelloWorld {
public HelloWorld() { }
public String getHelloWorld() {
return "Hello World!";
}
}
编译这个
Java
文件并得到
HelloWorld.class
文件。在[tomcat-home]\webapps\blazeds\WEB-INF\classes目录下新建一个名为“cn”的文件夹,然后在cn文件夹新建一个“riahome”文件夹,接着在riahome文件夹里新建一个“java”文件夹,最后把刚才编译得到的HelloWorld.class文件放到java文件里,HelloWorld.class的路径应该为:[tomcat-home]\webapps\blazeds\WEB-INF\classes\cn\riahome\java\HelloWorld.class
五、修改remoting-config.xml
打开[tomcat-home]\ webapps\blazeds\WEB-INF\flex\remoting-config.xml这个文件,然后在</default-channels>标签之后和</service>标签之前添加以下结点(注意id属性和source结点的值,source结点描述了完整的包路径和类名):
<destination id="helloWorld">
<properties>
<source>cn.riahome.java.HelloWorld</source>
</properties>
</destination>
六、如果Tomcat正在运行,请停止它然后再启动它(就是重启Tomcat)
七、新建一个名为“HelloWorld”的Flex Project
设置服务器类型Java,使用BlazeDS
配置Web项目路径和flex文件编译路径,点击验证
验证成功后设置url访问测试路径:
输出文件夹URL=http://localhost:8080/blazeds/FlexPro-debug
八、在 HelloWorld.mxml文件的<mx:Application></mx:Application>标签之间添加如下代码:
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
private function resultHandler(event:ResultEvent):void
{
// 显示收到的 "Hello World!" 数据
Alert.show(event.result.toString(), "提示");
}
private function faultHandler(event:FaultEvent):void
{
Alert.show(event.fault.toString(), "提示");
}
]]>
</mx:Script>
<mx:RemoteObject id="remoteObject" destination="helloWorld"
source="cn.riahome.java.HelloWorld"
result="resultHandler(event)" fault="faultHandler(event)"/>
<mx:Button label="发送" click="remoteObject.getHelloWorld()"/>
九、按F11测试,你看到一个叫“发送”的按钮,按一下它,会弹出“Hello World!”,这是后台发送过来的。至此,我得恭喜您!您成功了!
十、最后需要注意的是:
<mx:RemoteObject>标签的destination属性值必须跟remoting-config.xml文件里destination标签的id值一致!
如果您还是测试不成功,请注意以下几点:
1、核实HelloWorld.class文件已经在[tomcat-home]\webapps\blazeds\WEB-INF\classes\cn\riahome\java目录下;
2、检查remote-config.xml文件里是否已经添加了上述的<destination>标签;
3、有没有重启Tomcat服务器;
4、检查<mx:RemoteObject>标签有没有这两个属性:destination=”helloWorld”、source=”cn.riahome.java.HelloWorld”;
5、打开Flex Project的属性面板,查看 Flex Compiler里的Additional compiler arguments选项,是否有“-services”指令(通常在新建Project的时候就自动添加的);
6、打开Flex Project的属性面板,再次检查 Flex Server里的 Root folder、Root URL、Conntext root,按一下 Validate Location按钮测试是否成功;
7、检查所有代码有没有错误。
参考网址:
Tomcat配置:http://blog.chinaunix.net/space.php?uid=9195812&do=blog&id=2006311
主参考:http://bbs.9ria.com/thread-9982-1-1.html
新建Flex项目:http://blog.csdn.net/hxx688/article/details/4160205