Flex与java 通过BlazeDS实现通信(简单Demo)

因为对于flex本人也是新手,此前按照网上的各种方法进行试验,都没能实现flex与java的通信。也许是eclipse和tomcat版本的问题。后来经过几天的尝试,终于成功了。。。现和大家分享一下,希望和我一样曾经饱受困扰的同胞们,能够根据我的Demo,配置成功!

好,闲话少说,开始。

一、推荐环境

1、jdk1.6

2、Myeclipse 8.5 (或以上版本)

3、Flash Builder 4 Plug-in

4、tomcat6.0.32

  Blazeds官方下载地址:(需要用户注册)

http://flexorg.wip3.adobe.com/blazeds/4.x/17657/blazeds-turnkey-4.0.1.17657.zip 

二、项目的建立和整合

1、在Myeclipse中新建一个Web Project,名为FlexJava.

 

 

 

  3.部署应用FlexJava到Tomcat服务器中,并启动tomcat服务。

 4.为FlexJava项目添加blazeds支持:

      1>解压BlazeDS.war到任意文件夹,里面包含WEB- INF和META-INF两个文件夹。

      2>复制WEB- INF文件夹,覆盖项目中WebRoot下的WEB- INF文件夹。(目的是为了得到其子文件夹flex中的配置文件和lib中的资源包,以及web.xml的内容)

 

  5.为项目增加Flex支持,右键项目名称,点击“添加/更改项目类型”,“添加Flex项目类型”

 

 

 

 

注:服务器的“根文件夹”也可以写tomcat下自己项目中的WebRoot 

点击“Finish”,结束操作

6、代码的新建和修改

1>在FlexJava/src目录下新建类HelloWorld

Java代码如下:

  
  
  
  
  1. package com.bx;  
  2.  
  3. public class HelloWord {  
  4.     public class HelloWorld {  
  5.         public HelloWorld() {  
  6.         }  
  7.  
  8.         public String sayHelloWorld(String name) {  
  9.             return "Hello First Demo" + name;  
  10.         }  
  11.  
  12.     }  
  13. }  

 

2>编辑FlexJava.mxml 

代码如下:

  
  
  
  
  1. <?xml version="1.0" encoding="utf-8"?>     
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"      
  3.                xmlns:s="library://ns.adobe.com/flex/spark"      
  4.                xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">     
  5.       
  6.     <fx:Script>     
  7.         <![CDATA[     
  8.             import mx.controls.Alert;     
  9.             import mx.rpc.events.ResultEvent;     
  10.               
  11.             protected function myFlex_resultHandler(event:ResultEvent):void{     
  12.                 var name:String=event.result as String;     
  13.                 Alert.show(name);     
  14.             }     
  15.             protected function button1_clickHandler(event:MouseEvent):void    
  16.             {       
  17.                 myFlex.sayHelloWorld(txtName.text);     
  18.             }     
  19.         ]]>     
  20.     </fx:Script>     
  21.       
  22.     <fx:Declarations>     
  23.         <!-- 将非可视元素(例如服务、值对象)放在此处 -->     
  24.         <s:RemoteObject id="myFlex" destination="mytest" result="myFlex_resultHandler(event)"/>     
  25.     </fx:Declarations>     
  26.     <s:Button x="209" y="135" label="按钮" click="button1_clickHandler(event)"/>     
  27.     <s:TextInput x="166" y="81" id="txtName"/>     
  28.     <s:Label x="10" y="81" text="请输入内容:" fontSize="15" fontWeight="bold" fontFamily="中易黑体"/>     
  29. </s:Application>    
  30.  

3> 编辑WEB-INF/flex/remoting-config.xml文件:(其实就是增加了destination)

  
  
  
  
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <service id="remoting-service" class="flex.messaging.services.RemotingService"> 
  3.  
  4.     <adapters> 
  5.         <adapter-definition id="java-object" 
  6.             class="flex.messaging.services.remoting.adapters.JavaAdapter" 
  7.             default="true" /> 
  8.     </adapters> 
  9.  
  10.     <default-channels> 
  11.         <channel ref="my-amf" /> 
  12.     </default-channels> 
  13.     <destination id="mytest"> 
  14.         <properties> 
  15.             <source>com.bx.HelloWorld</source> 
  16.         </properties> 
  17.     </destination> 
  18.  
  19. </service> 

 

 7.右键项目名称,点击properties/Flex构建路径,修改输出文件夹 URL;

 

另:完成这些步骤后,有的同胞的项目可能会有错,但下栏Problems里,不报错。

本人的解决方法:把FlexJava.mxml从“源代码”视图切换到“设计”视图,就会在下栏的Problems中显示具体错误

此时,只需选中错误,右键,选择“重新创建模板”,错误就会消失。

7、至此,配置基本完毕。重启tomcat,运行FlexJava.mxml即可。

点击“按钮”,成功进行通讯

 

你可能感兴趣的:(java,通信,Flex,blazeds,休闲)