(綜合其他帖和自己的修改)
我們要實現的目的:我們要實現的目的:
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,網上很多,可以進行下載下來,演示例子。
1,創建web項目:
我的項目是hello
2,將blazeds.war解壓縮(直接用winrar或者通過放入tomcat中啓動由tomcat幫忙解壓縮),將blazeds.war項目中的,Web-Inf複製,替換hello項目(用剛纔複製的將此項目(hello)中的替換)。 也可以不替換,而是將相應的文件拷到原來的項目的win-info下面,注意不要漏了jar包和web.xml
4,在web項目中建立java類
- package com.demo;
- public class HelloWorld {
- public String sayHello(String name) {
- System.out.println(name);
- return"hello," + name;
- }
- }
5,在剛纔複製的flex目錄下打開remoting-config.xml,寫入一下代碼
- <destination id="Hello">
- <properties>
- <source>com.demo.HelloWorld</source>
- </properties>
- </destination>
6,發佈此項目。
以上是web項目中的內容,下來看看flex項目
1,創建flex項目,flexTest,application type 選擇 web application, server technology 選擇none,點next,output folder 中選擇你上面建立web工程的目錄的webRoot(這裏就是hello),很多地方都說選擇j2ee,這個是建立集成項目時候選擇的。
2,寫入mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
- <mx:Script >
- <![CDATA[ import mx.rpc.events.FaultEvent;
- import mx.rpc.events.ResultEvent;
- [Bindable]
- private var helloResult:String;
- private function sayHello():void {
- ro.sayHello(inputText.text);
- }
- private function resultHandler(event:ResultEvent):void {
- helloResult = event.result as String;
- }
- ]]>
- </mx:Script >
- <mx:RemoteObject id="ro" destination="Hello" result="resultHandler(event)" endpoint="/Hello/messagebroker/amf"/>
- <mx:HBox x="0" y="10" width="100%">
- <mx:Label text="Name:" id="nameLabel"/>
- <mx:TextInput id="inputText"/>
- <mx:Button label="say Hello" id="nameButton" click="sayHello()"/>
- <mx:Label id="resultLabel" text="{helloResult}"/>
- </mx:HBox>
- </mx:Application>
3,最重要的endpoint="/Hello/messagebroker/amf",這個一定要寫對,hello改成你自己的web項目名。
mx:RemoteObject的不足之處是調試不方便。在flex application運行時會提示找不到http/Hello/messagebroker/amf的錯誤,而整個web發佈後運行則沒有這個問題。