解析Flex與java集成開發(fā)
本文和大家重點(diǎn)討論一下Flex與java集成開發(fā),主要包括開發(fā)環(huán)境,項(xiàng)目流程和調(diào)試等內(nèi)容,相信通過(guò)本文的學(xué)習(xí)你對(duì)Flex與java集成開發(fā)的概念一定會(huì)有深刻的認(rèn)識(shí)。
Flex與java集成開發(fā)
一、開發(fā)環(huán)境:
Eclipse3.3+myeclipse6+FB3_WWEJ_Plugin(eclipse的Flex插件)+lcds(LiveCycleDataService)+tomcat6
二、Flex與java集成開發(fā)項(xiàng)目流程:
1、新建FlexLCDS工程
a、彈出CreateaFlexProject窗口:
Projectname:輸入test。
Projectlocation:默認(rèn)配置。
ServerTechnology:SeverApplicationType選擇j2ee,選中Useremoteobjectaccessservice,并選擇LiveCycleDataServices。注意選中CreatecombinedJava/FlexprojectusingWTP,把我們的JAVA項(xiàng)目和Flex整合一起開發(fā)。
b、ConfigureJ2EEServer窗口:
需要注意的是Outputfolder需要設(shè)置為WebRoot,以便我們可以利用MYECLIPSE的自動(dòng)發(fā)布功能,省去了不少事情。
J2EEsetting下的targetruntime我們可以新建個(gè)tomcat應(yīng)用。
其他的默認(rèn)配置。
c、窗口CreateaFlexProject可以默認(rèn)配置
說(shuō)明:Mainsourcefolder是Flex的源碼存放根目錄,
OutputfolderURL是在開發(fā)過(guò)程中運(yùn)行和調(diào)試的請(qǐng)求路徑,這個(gè)與發(fā)布無(wú)關(guān),不會(huì)影響任何你在程序中使用的路徑,但是能使開發(fā)方便
注意:FlexBuilder3這里存在bug,新建工程時(shí),部分自定義的屬性并沒有保存下來(lái),而必須在新建后的項(xiàng)目屬性中更改。
2、用MyEclipse添加Web容器
項(xiàng)目中點(diǎn)擊右鍵選中MYECLIPSE下的AddWebProjectcapabilities,彈出的窗口中,記住不要勾選Createweb.xml。這樣你就可以在MYECLIPSE中發(fā)布。
3、項(xiàng)目屬性配置
點(diǎn)擊test項(xiàng)目的Properties,需要完成下面幾個(gè)配置。
FlexServer配置:
RootUrl屬性:http://localhost:8080/test改為:http://localhost:8080
ContextRoot屬性:/WebRoot改為/test。
設(shè)置完成后別忘了ValicateLocation檢測(cè)下。
說(shuō)明:
Rooturl當(dāng)然就是你的web服務(wù)器的根路徑了,Tomcat默認(rèn)是8080端口,如果改了就自己修改
Contextroot就是LCDS工程的名稱(注意:如果你分開為兩個(gè)工程,則這里指的是你J2ee項(xiàng)目的名稱,而不是你Flex項(xiàng)目的名稱,因?yàn)槟阍谡?qǐng)求Java的數(shù)據(jù)服務(wù)),在Flex請(qǐng)求LCDS時(shí),會(huì)采用這個(gè)作為參數(shù)http://{server.name}:{server.port}/{context.root}/messagebroker/amf
如果Contextroot錯(cuò)了,那么永遠(yuǎn)不可能正確的請(qǐng)求LCDS的服務(wù)了。
三、Flex與java集成開發(fā)發(fā)布調(diào)試
1、要在MYECLIPSE下部署Test項(xiàng)目。
2、在項(xiàng)目中找到test.mxml,點(diǎn)右鍵,"Runas"--"FlexApplication"。如果看到了http://localhost:8080/test/test.html頁(yè)面則部署成功。
我們也可以調(diào)試程序。選擇"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)下面錯(cuò)誤:如果出現(xiàn):org.apache.catalina.util.DefaultAnnotationProcessorcannotbecasttoorg.apache.AnnotationProces
可以在JAVABuildPathLibralies下的tomcat6lib去掉。
3、注意你要下載最新版本的flashplayerdebug版本。否則會(huì)出現(xiàn):
Failedtoconnect;sessiontimedout.Ensurethat:
1.YoucompiledyourFlashapplicationwithdebuggingon.
2.YouarerunningthedebuggerversionofFlashPlayer.
【編輯推薦】
- 解析Flexbuilder4十大新特性
- 從Flex Builder更名看Flash平臺(tái)戰(zhàn)略
- Flex及FlexBuilder2.0開發(fā)環(huán)境詳解
- FlexBuilder3.0與Eclipse3.4的完美結(jié)合
- 學(xué)習(xí)筆記 FlexBuilder2.0中如何使用基于Lists的控件