2025-04-30

因為對於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項目類型”

 

 

 

 

  點擊“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;

 

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

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

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

7、至此,配置基本完畢。重啟tomcat,運行FlexJava.mxml即可。

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

作者“李會朝De個人博客”

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *