解析Flex與java集成開發(fā)
本文和大家重點討論一下Flex與java集成開發(fā),主要包括開發(fā)環(huán)境,項目流程和調試等內容,相信通過本文的學習你對Flex與java集成開發(fā)的概念一定會有深刻的認識。
Flex與java集成開發(fā)
一、開發(fā)環(huán)境:
Eclipse3.3+myeclipse6+FB3_WWEJ_Plugin(eclipse的Flex插件)+lcds(LiveCycleDataService)+tomcat6
二、Flex與java集成開發(fā)項目流程:
1、新建FlexLCDS工程
a、彈出CreateaFlexProject窗口:
Projectname:輸入test。
Projectlocation:默認配置。
ServerTechnology:SeverApplicationType選擇j2ee,選中Useremoteobjectaccessservice,并選擇LiveCycleDataServices。注意選中CreatecombinedJava/FlexprojectusingWTP,把我們的JAVA項目和Flex整合一起開發(fā)。
b、ConfigureJ2EEServer窗口:
需要注意的是Outputfolder需要設置為WebRoot,以便我們可以利用MYECLIPSE的自動發(fā)布功能,省去了不少事情。
J2EEsetting下的targetruntime我們可以新建個tomcat應用。
其他的默認配置。
c、窗口CreateaFlexProject可以默認配置
說明:Mainsourcefolder是Flex的源碼存放根目錄,
OutputfolderURL是在開發(fā)過程中運行和調試的請求路徑,這個與發(fā)布無關,不會影響任何你在程序中使用的路徑,但是能使開發(fā)方便
注意:FlexBuilder3這里存在bug,新建工程時,部分自定義的屬性并沒有保存下來,而必須在新建后的項目屬性中更改。
2、用MyEclipse添加Web容器
項目中點擊右鍵選中MYECLIPSE下的AddWebProjectcapabilities,彈出的窗口中,記住不要勾選Createweb.xml。這樣你就可以在MYECLIPSE中發(fā)布。
3、項目屬性配置
點擊test項目的Properties,需要完成下面幾個配置。
FlexServer配置:
RootUrl屬性:http://localhost:8080/test改為:http://localhost:8080
ContextRoot屬性:/WebRoot改為/test。
設置完成后別忘了ValicateLocation檢測下。
說明:
Rooturl當然就是你的web服務器的根路徑了,Tomcat默認是8080端口,如果改了就自己修改
Contextroot就是LCDS工程的名稱(注意:如果你分開為兩個工程,則這里指的是你J2ee項目的名稱,而不是你Flex項目的名稱,因為你在請求Java的數(shù)據服務),在Flex請求LCDS時,會采用這個作為參數(shù)http://{server.name}:{server.port}/{context.root}/messagebroker/amf
如果Contextroot錯了,那么永遠不可能正確的請求LCDS的服務了。
三、Flex與java集成開發(fā)發(fā)布調試
1、要在MYECLIPSE下部署Test項目。
2、在項目中找到test.mxml,點右鍵,"Runas"--"FlexApplication"。如果看到了http://localhost:8080/test/test.html頁面則部署成功。
我們也可以調試程序。選擇"Debugas"--"FlexApplication"http://localhost:8080/test/test.html?debug=true
注意:
1、如果出現(xiàn):Exceptioninthread"RTMP-Server"Flex.messaging.endpoints.rtmp.RTMPException:
TheRTMPserverhasencounteredafatalexceptionstartingup:Addressalreadyinuse:bind。
需要在/test/WebRoot/WEB-INF/Flex/services-config.xml下面去掉
- <channel-definitionidchannel-definitionid="my-rtmp"class="mx.messaging.channels.RTMPChannel">
- <endpointurlendpointurl="rtmp://{server.name}:2038"
- class="Flex.messaging.endpoints.RTMPEndpoint"/>
- <properties>
- <idle-timeout-minutes>20</idle-timeout-minutes>
- <!--fordeploymentonWebSphere,mustbemappedtoaWorkManageravailableinthe
- webapplication'sjndicontext.
- <websphere-workmanager-jndi-name>java:comp/env/wm/MessagingWorkManager</websphere-
- workmanager-jndi-name>
- -->
- </properties>
- </channel-definition>
2、如果有出現(xiàn)下面錯誤:如果出現(xiàn):org.apache.catalina.util.DefaultAnnotationProcessorcannotbecasttoorg.apache.AnnotationProces
可以在JAVABuildPathLibralies下的tomcat6lib去掉。
3、注意你要下載最新版本的flashplayerdebug版本。否則會出現(xiàn):
Failedtoconnect;sessiontimedout.Ensurethat:
1.YoucompiledyourFlashapplicationwithdebuggingon.
2.YouarerunningthedebuggerversionofFlashPlayer.
【編輯推薦】
- 解析Flexbuilder4十大新特性
- 從Flex Builder更名看Flash平臺戰(zhàn)略
- Flex及FlexBuilder2.0開發(fā)環(huán)境詳解
- FlexBuilder3.0與Eclipse3.4的完美結合
- 學習筆記 FlexBuilder2.0中如何使用基于Lists的控件