<!-- Feedsky FEED发布代码开始 -->
欢迎点击此处订阅本Blog
<!-- FEED自动发现标记开始 --> <link title="RSS 2.0" type="application/rss+xml" href="http://feed.feedsky.com/softwave" rel="alternate"> <!-- FEED自动发现标记结束 -->
<!--Google 468*60横幅广告开始--><script type="text/javascript"><!-- google_ad_client = "pub-7343546549496470"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "image"; //2007-07-26: CSDN google_ad_channel = "6063905817"; google_color_border = "6699CC"; google_color_bg = "E6E6E6"; google_color_link = "FFFFFF"; google_color_text = "333333"; google_color_url = "AECCEB"; google_ui_features = "rc:6"; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><!--Google 468*60横幅广告结束-->
什么是BlazeDS呢?BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,它能够使得后台的Java应用
程序
和运行在浏览器上的Flex应用
程序
相互
通信
。在各大搜索引擎里,关于BlazeDS的
中文
教程
来来去去都是那几篇,而且都是使用Eclipse来开发Flex的(用Eclipse开发Flex跟Java很不错的)。这篇文章将会尝试着使用Flex Builder 3,用一个经典的“HelloWorld”
例子
来让你学会BlazeDS的使用方法。
在开始之前,你需要安装JDK和Tomcat并实现成功配置,详细请看:
Tomcat 6.0 配置
。
一、我电脑上的配置是如下四点,如果你电脑上的配置不同于以下四点,可能需要你对你的电脑进行修改一下:
1、Window XP;
2、Tomcat 6.0,安装在“C:/Program Files/Apache Software Foundation/Tomcat 6.0/”,下文会使用“[tomcat-home]”来代替这长长的目录路径;
3、Tomcat服务器使用端口8080;
4、使用Flex Builder 3而非Eclipse。
二、如果你对以下操作比较陌生,那你应该先熟悉一下以下操作:
1、写一个Java文件并编译它;
2、使用Flex Builder 3;
3、停止和开户Tomcat服务器。
三、下载BlazeDS:
1、网址:
http://opensource.adobe.com/wiki/display/blazeds/Release+Builds
;
2、下载那个“BlazeDS binary distribution”(
http://download.macromedia.com/pub/opensource/blazeds/blazeds_bin_3-0-0-544.zip
);
i. 把那个 .zip 文件保存到你的电脑上
ii. 里面有两个文件:blazeds.war 和 blazeds-bin-readme.html
iii. 把里面的 blazeds.war 文件解压到这个目录下:[tomcat-home]/webapps
3、如果Tomcat正在运行,请停止它然后再启动它(就是重启Tomcat);
4、打开这个目录:[tomcat-home]/webapps
i. 你应该会看到一个名为“blaseds”的文件夹
ii. 在blaseds文件夹里,会有一个名为“WEB-INF”的文件夹
iii. 在WEB-INF文件夹里会有很多文件夹,其中有一个名为“
class
es”的文件夹。Flex应用程序需要使用到的Java
class
就是放到这个文件夹里的
iv. 还有一个名为“
flex
”的文件夹,它里面有一个remoting-config.xml,我们要在这个remoting-config.xml文件里添加destination结点来告诉Flex应用程序如何连接上Java class的
四、使用文本编辑器编写以下这个Java文件并命名为“HelloWorld.java”:
-
package
cn.riahome.java;
-
-
public
class
HelloWorld{
-
-
public
HelloWorld(){
-
}
-
-
public
StringgetHelloWorld(){
-
return
"HelloWorld!"
;
-
}
-
}
编译这个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
五、
打开 [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;
八、
在 HelloWorld.mxml 文件的<mx:Application></mx:Application>标签之间添加如下代码:
-
<![CDATA[
-
-
importmx.rpc.events.FaultEvent;
-
importmx.controls.Alert;
-
importmx.rpc.events.ResultEvent;
-
-
privatefunctionresultHandler(event:ResultEvent):void
-
{
-
//显示收到的"HelloWorld!"数据
-
Alert.show(event.result.toString(),"提示");
-
}
-
-
privatefunctionfaultHandler(event:FaultEvent):void
-
{
-
Alert.show(event.fault.toString(),"提示");
-
}
-
-
]]>
-
-
-
<
mx:RemoteObject
id
=
remoteObject
-
result
=
"resultHandler(event)"
fault
=
"faultHandler(event)"
/>
九、
按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、检查所有代码有没有错误
<!--新Google 468*60横幅广告开始--><script type="text/javascript"><!-- google_ad_client = "pub-7343546549496470"; /* 468x60, 创建于 08-8-6 */ google_ad_slot = "7368701459"; google_ad_width = 468; google_ad_height = 60; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><!--新Google 468*60横幅广告结束-->
<!--新Google 468x15 横链接单元开始--><script type="text/javascript"><!-- google_ad_client = "pub-7343546549496470"; /* 468x15 横链接单元 */ google_ad_slot = "5785741422"; google_ad_width = 468; google_ad_height = 15; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><!--新Google 468x15 横链接单元结束-->
<!-- Google Reader shared发布代码开始 --><script type="text/javascript" src="http://www.google.com/reader/ui/publisher.js"></script><script type="text/javascript" src="http://www.google.com/reader/public/javascript/user/00697638153916680411/state/com.google/broadcast?n=5&callback=GRC_p(%7Bc%3A%22green%22%2Ct%3A%22%5Cu8FD9%5Cu4E9B%5Cu6587%5Cu7AE0%5Cu4E5F%5Cu503C%5Cu5F97%5Cu4E00%5Cu770B%22%2Cs%3A%22false%22%7D)%3Bnew%20GRC"></script><!-- Google Reader shared发布代码结束 -->
用一个HelloWorld例子手把手教会你使用FLEX BlazeDS