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即可。

點擊“按鈕”,成功進行通訊

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章