Web+FLEX+BLAZEDS

(綜合其他帖和自己的修改)

我們要實現的目的:我們要實現的目的:

1.希望在myeclipse裏面可以創建flex項目。

2.在flex中編輯的mxml文件,保存後能夠自動的生成flash文件和html文件以供測試,當然正式發佈的時候很多的HTML是要刪除的。

3.利用myeclipse在工程中實時同步機制,把我們編譯後的flash和html文件直接同步到web工程,然後工程自動部署到tomcat,這樣測試就很方便了,因爲同步flash和html文件到tomcat根本就不用重新啓動。

注意我們的關鍵點本質上只是把flex項目的編譯輸出直接到web工程。

1.希望在myeclipse裏面可以創建flex項目。

2.在flex中編輯的mxml文件,保存後能夠自動的生成flash文件和html文件以供測試,當然正式發佈的時候很多的HTML是要刪除的。

3.利用myeclipse在工程中實時同步機制,把我們編譯後的flash和html文件直接同步到web工程,然後工程自動部署到tomcat,這樣測試就很方便了,因爲同步flash和html文件到tomcat根本就不用重新啓動。

注意我們的關鍵點本質上只是把flex項目的編譯輸出直接到web工程。結,共有一下幾種方法:

1,flex項目和web項目在同一項目。

2,flex項目和web項目爲兩個項目,進行交互。

個人認爲,第二種比較好,這樣可以完全將flex卡發和web業務開發分開。我這裏也介紹第二種方法。

下面介紹我的hello小程序。

首先,開發環境

1,eclipse3.2+myeclipse5.1,不多說

2,eclipse的flex插件:FB3_WWEJ_Plugin.exe

3.Tomcat6.0

4,必須得到blazeds.war,網上很多,可以進行下載下來,演示例子。


BlazeDS已經推出正式版:http://opensource.adobe.com/wiki/display/blazeds/Release+Builds,它有三個版本,其中Turnkey版內置了Tomcat和 Flex 3 SDK,還包含blazeds.war、ds-console.war和samples.war,建議初學者使用;Binary Distribution版只包括blazeds.war,此爲最簡配置;而Source則包含blazeds的Java源代碼,想做二次開發就下載這個。


1,創建web項目:

     我的項目是hello

2,將blazeds.war解壓縮(直接用winrar或者通過放入tomcat中啓動由tomcat幫忙解壓縮),將blazeds.war項目中的,Web-Inf複製,替換hello項目(用剛纔複製的將此項目(hello)中的替換)。 也可以不替換,而是將相應的文件拷到原來的項目的win-info下面,注意不要漏了jar包和web.xml

4,在web項目中建立java類

 

Java代碼 複製代碼
  1. package com.demo;  
  2.   
  3. public class HelloWorld {  
  4.   
  5.     public String sayHello(String name) {  
  6.           
  7.         System.out.println(name);  
  8.         return"hello," + name;  
  9.   
  10.     }  
  11.   
  12. }  

 5,在剛纔複製的flex目錄下打開remoting-config.xml,寫入一下代碼

Xml代碼 複製代碼
  1. <destination id="Hello">  
  2.        <properties>  
  3.            <source>com.demo.HelloWorld</source>  
  4.        </properties>  
  5.     </destination>  

 

6,發佈此項目。



以上是web項目中的內容,下來看看flex項目

1,創建flex項目,flexTest,application type 選擇 web application, server technology 選擇none,點next,output folder 中選擇你上面建立web工程的目錄的webRoot(這裏就是hello),很多地方都說選擇j2ee,這個是建立集成項目時候選擇的。

2,寫入mxml

Html代碼 複製代碼
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">  
  3. <mx:Script >        
  4. <![CDATA[ import mx.rpc.events.FaultEvent;     
  5.    import mx.rpc.events.ResultEvent;     
  6.       [Bindable]     
  7.       private var helloResult:String;    
  8.        
  9.       private function sayHello():void {     
  10.         ro.sayHello(inputText.text);     
  11.         }     
  12.          
  13.        private function resultHandler(event:ResultEvent):void {     
  14.           helloResult = event.result as String;     
  15.        }  
  16.         
  17.    ]]>     
  18. </mx:Script >  
  19. <mx:RemoteObject id="ro" destination="Hello" result="resultHandler(event)" endpoint="/Hello/messagebroker/amf"/>  
  20. <mx:HBox x="0" y="10" width="100%">  
  21.    <mx:Label text="Name:" id="nameLabel"/>  
  22.    <mx:TextInput id="inputText"/>  
  23.    <mx:Button label="say Hello" id="nameButton" click="sayHello()"/>  
  24.    <mx:Label id="resultLabel" text="{helloResult}"/>  
  25. </mx:HBox>  
  26.   
  27. </mx:Application>  

 

3,最重要的endpoint="/Hello/messagebroker/amf",這個一定要寫對,hello改成你自己的web項目名。

mx:RemoteObject的不足之處是調試不方便。在flex application運行時會提示找不到http/Hello/messagebroker/amf的錯誤,而整個web發佈後運行則沒有這個問題。



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