BlazeDS入门教程
什么是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、网址:opensource.adobe/wiki/display/blazeds/Release+Builds ; 
        2、下载那个“BlazeDS binary distribution”(download.macromedia/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文件夹里会有很多文件夹,其中有一个名为“classes”的文件夹。Flex应用程序需要使用到的Java class就是放到这个文件夹里的 
                iv. 还有一个名为“flex”的文件夹,它里面有一个l,我们要在这个l文件里添加destination结点来告诉Flex应用程序如何连接上Java class的 

四、使用文本编辑器编写以下这个Java文件并命名为“HelloWorld.java”: 
Java代码  
1. package cn.riahome.java; 
2.    
3. public class HelloWorld { 
4.    
5. public HelloWorld() { 
6.
7.    
8. public String getHelloWorld() { 
9.   return "Hello World!"
10.
11.

编译这个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 

eclipse安装教程tomcat五、打开 [tomcat-home]\ webapps\blazeds\WEB-INF\l 这个文件,然后在</default-channels>标签之后和</service>标签之前添加以下结点(注意id属性和 source结点的值,source结点描述了完整的包路径和类名): 
Java代码  
1. <destination id="helloWorld"
2.     <properties> 
3.         <source>cn.riahome.java.HelloWorld</source> 
4.     </properties> 
5. </destination> 

六、如果Tomcat正在运行,请停止它然后再启动它(就是重启Tomcat); 

七、请按以下步骤新建一个名为“HelloWorld”的Flex Project: 


八、在 l 文件的<mx:Application></mx:Application>标签之间添加如下代码: 
Java代码  
1. <mx:Script> 
2.         <![CDATA[ 
3.              
4.             import mx.rpc.events.FaultEvent; 
5.             import&ls.Alert; 
6.             import mx.rpc.events.ResultEvent; 
7.              
8.             private function resultHandler(event:ResultEvent):void 
9.             { 
10.                 // 显示收到的 "Hello World!" 数据 
11.                 Alert.String(), "提示"); 
12.             } 
13.              
14.             private function faultHandler(event:FaultEvent):void 
15.             { 
16.                 Alert.show(String(), "提示"); 
17.             } 
18.              
19.         ]]> 
20.     </mx:Script> 
21.      
22.     <mx:RemoteObject id="remoteObject" destination="helloWorld" source="cn.riahome.
java.HelloWorld" 
23.         result="resultHandler(event)" fault="faultHandler(event)"/> 
24.      
25.     <mx:Button label="发送" click="HelloWorld()"/> 

九、按F11测试,你看到一个叫“发送”的按钮,按一下它,会弹出“Hello World!”,这是后台发送过来的。至此,我得恭喜您!您成功了! 

十、最后需要注意的是:<mx:RemoteObject>标签的destination属性值必须跟l文件里destination标签的id值一致! 

如果您还是测试不成功,请注意以下几点: 
1、核实HelloWorld.class文件已经在[tomcat-home]\webapps\blazeds\WEB-INF\classes\cn\
riahome\java目录下; 
2、检查l文件里是否已经添加了上述的<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、检查所有代码有没有错误
使用JAVA读写Properties属性文件 | Server Push

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。