用動作去驅動未來

          生命在于運動,讓自己身體的每一個細胞都動起來吧.

           

          FLEX與JAVA之間的通信

          一種方法:使用BlazeDS實現Java和Flex通信

          BlazeDS 是一個基于服務器的 Java 遠程控制 (remoting) 和 Web 消息傳遞 (messaging) 技術,它能夠使得后端的 Java 應用程序和運行在瀏覽器上的 Adobe Flex 應用程序相互通信。這篇文章中,我講述一種方法(也許不是最好的)使得我能夠成功地利用 BlazeDS 和 Flex 建立一個簡單的程序。使用的 IDE 是 eclipse, 而并非 Flex Builder. 下面我將逐步介紹怎么實現這個簡單的程序。

          1. 安裝 JDK 和 Tomcat, 并且實現成功配置。

          2. 安裝 Flex SDK. 詳細請見官方文檔

          3. 下載 BlazeDS , 如果你使用的是 turnkey 版本(建議下載此版本)里面實際上包含了 Tomcat 服務器了。

          下面介紹只安裝 BlazeDS 的 web application 版本(但是仍然下載的是 Turnkey 版本)。

          下載的 zip 包里面包含了:

          blazeds.war: 主要的 BlazeDS war 文件,用來建立你的 BlazeDS 應用程序。

          Sample.war 就是 BlazeDS 例子了。

          Ds-console.war ,簡單的 BlazeDS 部署管理程序。

          每一個 war 程序都是獨立的,假如你使用 J2EE 的 web 應用程序選項,那么你必須有一個 J2EE 應用服務器或者 servlet 容器。比如使用 Tomcat. 而且必須把剛才的三個 war 文件部署在 Tomcat_Home ( tomcat 安裝目錄)下的 webapps 目錄下。然后重啟 Tomcat 服務器,在瀏覽器輸入: http://localhost:8080/samples 如果看到顯示頁面代表就成功了。如果你的應用程序需要使用 HSWLDB 數據庫,那么也拷貝 .zip 文件中的 sampledb 目錄到 webapps 目錄下,然后啟動數據庫。啟動方法很簡單:到 sampledb 目錄下,執行 startdb.bat 就可了 (windows OS) 。 提示:可以的話,在你的 Eclipse 目錄下,找到 eclipse.ini 把最大內存數改成 512.

          4. ( 可選 ) 配置 Tomcat 的用戶角色。即在 Tomcat_Home/conf/tomat-users.xml 添加以下語句:

          Java代碼 

          <role rolename= "manager" /><user username= "abhi"  password= "abhi"  roles= "manager" />   

          <role rolename="manager"/><user username="abhi" password="abhi" roles="manager"/> 

          5.    利用 Eclipse 建立 Flex Project 。工程名字叫做 BlazeApp.    

           

          Application Type 選擇 web application, 服務器選擇 J2EE. 關聯 WTP, 至于代碼文件保存目錄自定義。 Next 。

          6.設置 J2EE 服務器。

          我們選擇 Tomcat, 可能需要手動配置 (new) 。然后選擇 flex war 文件,即我們放在 webapps 目錄下的 blazeds.war.然后 next.

          7.   接著,默認設置,也可自定義。 

           

          接著 next. 其實到這里已經完成了 project 建立.

          8.   接下來你可以在 eclipse 中可以看到整個工程的所有文件以及配置。在開發之前,可能需要修改 context root 配置。點擊 BlazeApp 右鍵,選擇屬性,然后見到如圖 , 修改 context root 值為 BlazeApp. (默認的是 WebContent, 好像不更改也可以。自行測試 … )。

            

          9.  創建 Java 文件。

          點擊 src 文件夾,然后創建 java class. 類的包為 hello, 名字為 HelloWorld.

          Java代碼

           package  hello;    
          public   class  HelloWorld {   
          public  String sayHelloTo(String str) {   
          System.out.println( "Hello "  + str);       
                return   "Hello "  + str; }       
          }  
           

          package hello; public class HelloWorld {public String sayHelloTo(String str) {System.out.println("Hello " + str); return "Hello " + str; } } 

          10.   在 BlazeApp.mxml 文件中新建一個 text 和一個按鈕,來顯示從 HelloWorld 傳回來的信息。

          Xml代碼

          <? xml   version = "1.0"   encoding = "utf-8" ?>     
          < mx:Application   xmlns:mx = " < mx:Script >     
            <![CDATA[ import mx.rpc.events.FaultEvent;   
             import mx.rpc.events.ResultEvent;   
                [Bindable]   
                private var helloResult:String;   
                private function sayHelloTo():void {   
                  ro.sayHelloTo(inputText.text);   
                  }   
                 private function resultHandler(event:ResultEvent):void {   
          helloResult = event.result as String;   
                       } ]]>   </ mx:Script >     
                   < mx:RemoteObject   id = "ro"   destination = "helloworld"   result = "resultHandler(event)"   />     
                    < mx:HBox   width = "100%" >     
                      < mx:TextInput   id = "inputText" />     
                      < mx:Button   label = "Submit"   click = "sayHelloTo()" />     
                   </ mx:HBox >     
                  < mx:Label   text = "{helloResult}" />     
               </ mx:Application >   
           

          <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="

          11.   定義 remote object 使你的 flex 程序能夠調用 java 類。

          首先來配置 /WEB-INF/flex/remoting-config.xml 文件,添加以下粗體部分來新增一個destionation—HelloWorld 類。

          Xml代碼

           <? xml   version = "1.0"   encoding = "UTF-8" ?>   
          < service   id = "remoting-service"     
               class = "flex.messaging.services.RemotingService" >   
            
               < adapters >   
                   < adapter-definition   id = "java-object"   class = "flex.messaging.services.remoting.adapters.JavaAdapter"   default = "true" />   
               </ adapters >   
            
               < default-channels >   
                   < channel   ref = "my-amf" />   
               </ default-channels >   
          < STRONG > < destination   id = "helloworld" >     
                < properties >     
                    < source > hello.HelloWorld </ source >     
                  </ properties >     
            </ destination > </ STRONG >   
            
            
            
          </ service >   

           12. 配置結束。

          然后選擇 BlazeApp 項目,選擇在服務器上執行。即瀏覽地址為: http://localhost:8080/BlazedApp/BlazedApp.html 如果你能在輸入框輸入字段之后,點擊按鈕能返回 Hello,XXX 的信息,就代表成功了。

          如圖:  
           

          posted on 2010-04-29 10:52 黑螞蟻 閱讀(1084) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          路在腳下,此刻,出發。

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 关岭| 台江县| 久治县| 涞水县| 宜州市| 汉寿县| 莲花县| 河东区| 察隅县| 兴化市| 桓台县| 美姑县| 杂多县| 广河县| 鹤壁市| 息烽县| 四子王旗| 汉川市| 普宁市| 修水县| 定安县| 丽江市| 仁化县| 泰州市| 教育| 尖扎县| 江油市| 北安市| 吴堡县| 无棣县| 三江| 平度市| 固原市| 宜黄县| 临夏市| 开原市| 冷水江市| 天水市| 萝北县| 东阿县| 靖安县|