天天看點

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.

Flex與java通過BlazeDS實作通信(簡單Demo)
  3.部署應用FlexJava到Tomcat伺服器中,并啟動tomcat服務。
Flex與java通過BlazeDS實作通信(簡單Demo)

 4.為FlexJava項目添加blazeds支援:

      1>解壓BlazeDS.war到任意檔案夾,裡面包含WEB- INF和META-INF兩個檔案夾。

      2>複制WEB- INF檔案夾,覆寫項目中WebRoot下的WEB- INF檔案夾。(目的是為了得到其子檔案夾flex中的配置檔案和lib中的資源包,以及web.xml的内容)

  5.為項目增加Flex支援,右鍵項目名稱,點選“添加/更改項目類型”,“添加Flex項目類型”

Flex與java通過BlazeDS實作通信(簡單Demo)
Flex與java通過BlazeDS實作通信(簡單Demo)
Flex與java通過BlazeDS實作通信(簡單Demo)

  點選“Finish”,結束操作

6、代碼的建立和修改

1>在FlexJava/src目錄下建立類HelloWorld

Java代碼如下:

package com.bx; 

public class HelloWord { 

    public class HelloWorld { 

        public HelloWorld() { 

        } 

        public String sayHelloWorld(String name) { 

            return "Hello First Demo" + name; 

        } 

    } 

2>編輯FlexJava.mxml

代碼如下:

<?xml version="1.0" encoding="utf-8"?>    

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"     

               xmlns:s="library://ns.adobe.com/flex/spark"     

               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">    

    <fx:Script>    

        <![CDATA[    

            import mx.controls.Alert;    

            import mx.rpc.events.ResultEvent;    

            protected function myFlex_resultHandler(event:ResultEvent):void{    

                var name:String=event.result as String;    

                Alert.show(name);    

            }    

            protected function button1_clickHandler(event:MouseEvent):void   

            {      

                myFlex.sayHelloWorld(txtName.text);    

            }    

        ]]>    

    </fx:Script>    

    <fx:Declarations>    

        <!-- 将非可視元素(例如服務、值對象)放在此處 -->    

        <s:RemoteObject id="myFlex" destination="mytest" result="myFlex_resultHandler(event)"/>    

    </fx:Declarations>    

    <s:Button x="209" y="135" label="按鈕" click="button1_clickHandler(event)"/>    

    <s:TextInput x="166" y="81" id="txtName"/>    

    <s:Label x="10" y="81" text="請輸入内容:" fontSize="15" fontWeight="bold" fontFamily="中易黑體"/>    

</s:Application>   

3> 編輯WEB-INF/flex/remoting-config.xml檔案:(其實就是增加了destination)

<?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>

    <destination id="mytest">

        <properties>

            <source>com.bx.HelloWorld</source>

        </properties>

    </destination>

</service>

7.右鍵項目名稱,點選properties/Flex建構路徑,修改輸出檔案夾 URL;

Flex與java通過BlazeDS實作通信(簡單Demo)

另:完成這些步驟後,有的同胞的項目可能會有錯,但下欄console裡,不報錯。

本人的解決方法:把FlexJava.mxml從“源代碼”視圖切換到“設計”視圖,就會在下欄的console中顯示具體錯誤

Flex與java通過BlazeDS實作通信(簡單Demo)

此時,隻需選中錯誤,右鍵,選擇“重新建立模闆”,錯誤就會消失。

7、至此,配置基本完畢。重新開機tomcat,運作FlexJava.mxml即可。

Flex與java通過BlazeDS實作通信(簡單Demo)
點選“按鈕”,成功進行通訊
Flex與java通過BlazeDS實作通信(簡單Demo)