自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

兩種方法實(shí)現(xiàn)Flex+Java配置

開(kāi)發(fā) 后端
本文向大家介紹一下整合Flex+Java配置,作為一個(gè)Java程序員學(xué)習(xí)Flex,關(guān)心的就是怎樣將Flex和Java進(jìn)行結(jié)合交互。

本文和大家重點(diǎn)討論一下整合Flex+Java配置的方法,帶著Java程序員的思維,一開(kāi)始學(xué)習(xí)Flex并沒(méi)有按部就班的學(xué)習(xí)Flex的基礎(chǔ)知識(shí),而是想搞清楚Flex到底怎樣和Java交互的。

整合Flex+Java配置

作為一個(gè)Java程序員學(xué)習(xí)Flex,關(guān)心的就是怎樣將Flex和Java進(jìn)行結(jié)合交互。帶著Java程序員的思維,一開(kāi)始學(xué)習(xí)Flex并沒(méi)有按部就班的學(xué)習(xí)Flex的基礎(chǔ)知識(shí),而是想搞清楚Flex到底怎樣和Java交互的。經(jīng)過(guò)了一個(gè)周末的研究,終于初見(jiàn)成果,下面就重要的講解三種配置的兩個(gè)。
在分享這幾種配置之前,先簡(jiǎn)單的介紹一下需要用到的一些資源。

1、MyEclipse+Flex插件(官網(wǎng)下載)
2、Tomcat6.0作為服務(wù)器(官網(wǎng)下載)
3、用BlazeDS(免費(fèi))代替LCDS(收費(fèi)):沒(méi)錢(qián)啊,只能先使用免費(fèi)的了。從Adobe官方網(wǎng)站上下載下來(lái),將blazeds.war、ds-console.war、samples.war三個(gè)文件放在tomcat的webapps目錄下。

Flex+Java配置:

第一種:Java工程和Flex工程獨(dú)立。這種方式也是很多人使用的方式,F(xiàn)lex程序員和Java程序員相互獨(dú)立的工作,這種方式網(wǎng)上有很多的資料,在這里就不再贅述了。

第二種:Flex工程加入Java元素

1、切換到Flex視圖,新建Flexproject

說(shuō)明:Javasourcefolder就是你自己java業(yè)務(wù)源碼存放的根目錄,在FB3里,LCDS項(xiàng)目旨在將JavaJ2ee項(xiàng)目和FlexLcds項(xiàng)目混合。
當(dāng)然如果你不選擇combined兩個(gè)在一起,那么就麻煩些:要么你再單獨(dú)新建一個(gè)Flex項(xiàng)目,而這個(gè)項(xiàng)目只寫(xiě)java代碼。要么再建一個(gè)J2ee工程寫(xiě)java代碼,而這因?yàn)槲覀兪且猨ava和flex結(jié)合,所以在服務(wù)器選擇上我們選擇J2EE存放java類(lèi)的源文件,我們的目的就是Flex和java在一個(gè)工程里,所以我們這里選擇上
個(gè)項(xiàng)目只寫(xiě)Flex代碼,但最后要把Java編譯后的class文件放到這個(gè)項(xiàng)目下的webroot\web-inf\classes目錄中。即不管怎樣,最后發(fā)布時(shí),java編譯后的class文件必須和lcds部署的項(xiàng)目在一起。

2、點(diǎn)擊Next,配置J2EE服務(wù)器

說(shuō)明:Targetruntime實(shí)際上沒(méi)什么用(后來(lái)我刪除了配置文件里的對(duì)應(yīng)信息,也沒(méi)問(wèn)題),但是不指定就不能繼續(xù),如果這里顯示的是<none>那么就新建一個(gè)Tomcat的runtime,簡(jiǎn)單的只需要指定tomcat的安裝目錄即可。

Contentfolder實(shí)際上就是最終編譯后的容器目錄,因此,BlazeDS的blazeds.war文件將會(huì)發(fā)布到該目錄下的web-inf下的flex目錄中。同時(shí)因?yàn)榻坛滩捎玫氖荕yEclipse,他默認(rèn)的就是發(fā)布WebRoot里的內(nèi)容,為了自動(dòng)化,因此這里改為了WebRoot(這也是java開(kāi)發(fā)的習(xí)慣)
FlexWARfile指的是安裝了lcds后的flex.war文件的路徑,但是在這里我們采用的是BlazeDS來(lái)取代lcds,所以這里設(shè)置的是blazeds.war的路徑。
Compilationoptions指定了flex文件的編譯方式,選擇推薦的在FlexBuilder里編譯吧,雖然開(kāi)發(fā)時(shí)多耗點(diǎn)時(shí)間,但是在發(fā)布后不會(huì)占用服務(wù)器的編譯處理時(shí)間,對(duì)用戶(hù)來(lái)說(shuō)是有好處的。
Outputfolder指的是Flex編譯后的swf和html等文件存放的路徑,這里改為了WebRoot,意思是發(fā)布到根目錄就可以了。當(dāng)然你可以根據(jù)你的需要和習(xí)慣自行設(shè)置其他的路徑
因?yàn)槲覀儾捎玫腂lazeDS,所以這里要設(shè)置BlazeDS的路徑
這里我們可以自定義輸出路徑,一般情況下設(shè)置成根目錄WebRoot就可以了

3、點(diǎn)擊下一步,采用默認(rèn)的配置就可以,點(diǎn)擊完成,該工程就建立完成。下圖為該工程的目錄結(jié)構(gòu)

4、讓它變成web工程由MyEclipse發(fā)布吧

Flex文件的源文件夾

Java源文件夾

自動(dòng)生成的flex的配置文件
Flex編譯后發(fā)布的文件。我們發(fā)布在根目錄下
點(diǎn)擊Finish,現(xiàn)在我們的工程的圖標(biāo)變成了J2EEWeb工程了,這意味著,你可以
注意,不要點(diǎn)的太快了,要把這里的對(duì)號(hào)勾掉,這樣就不會(huì)覆蓋BlazeDS創(chuàng)建的web.xml
用MyEclipse來(lái)發(fā)布它或者添加更多容器,比如hibernate、spring等

5、工程建好以后,你可以通過(guò)右鍵—>屬性來(lái)進(jìn)行更多的設(shè)置。
6、這樣一個(gè)Flex+Java的工程就建立完成。
7、編寫(xiě)例子,測(cè)試在介紹完第三種方式以后統(tǒng)一介紹。

第三種:由Webproject反向加入Flex,也就是Flex+Java配置

1、先建立一個(gè)web工程:flexweb。(略)
2、向flexweb工程手工添加Flex需要的元素。
1)首先將BlazeDS需要的jar文件拷到工程的lib目錄下??梢詫⑸厦娼ǖ哪莻€(gè)flex工程的lib下的jar文件拷到該工程下的lib目錄下。
2)然后要加入FlexBlazeDS需要的配置文件。在WEB-INF下新建一個(gè)名為flex的文件夾,然后將我們上面建立的那個(gè)firstFlex該文件夾下的四個(gè)xml文件拷到該文件夾下。
3)最后,修改web.xml文件,加入Flex的配置。做法一個(gè)簡(jiǎn)單的把上面我們新建的那個(gè)flex工程的web.xml的部分代碼拷過(guò)來(lái)。
 

  1. <context-param> 
  2. <param-name>flex.class.path</param-name> 
  3. <param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-value> 
  4. </context-param> 
  5. <!--HttpFlexSessionattributeandbindinglistenersupport--> 
  6. <listener> 
  7. <listener-class>flex.messaging.HttpFlexSession</listener-class> 
  8. </listener> 
  9. <!--MessageBrokerServlet--> 
  10. <servlet> 
  11. <servlet-name>MessageBrokerServlet</servlet-name> 
  12. <display-name>MessageBrokerServlet</display-name> 
  13. <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class> 
  14. <init-param> 
  15. <param-name>services.configuration.file</param-name> 
  16. <param-value>/WEB-INF/flex/services-config.xml</param-value> 
  17. </init-param> 
  18. <load-on-startup>1</load-on-startup> 
  19. </servlet> 
  20. <servlet-mapping> 
  21. <servlet-name>MessageBrokerServlet</servlet-name> 
  22. <url-pattern>/messagebroker/*</url-pattern> 
  23. </servlet-mapping> 


3、將該工程發(fā)布到tomcat下,并啟動(dòng)tomcat。(注:一定要啟動(dòng)tomcat,因?yàn)樵诤竺娴脑O(shè)置中,它要驗(yàn)證工程的路徑)

4、然后在該工程上右鍵?FlexProjectNature?AddFlexProjectNature

5、設(shè)置完成后,會(huì)發(fā)現(xiàn)web工程的目錄結(jié)構(gòu)已經(jīng)發(fā)生了改變。
我們發(fā)現(xiàn)以這種形式建立的工程的目錄結(jié)構(gòu)和第二種方法有少許的不同,flex的mxml文件默認(rèn)的放在src文件夾中,和java文件共用一個(gè)目錄。并且沒(méi)有像上一個(gè)工程那樣自動(dòng)的編譯出可運(yùn)行的文件。

配置服務(wù)器路徑

配置正確的顯示

建議不要修改這里的配置

6、如果你對(duì)這個(gè)目錄結(jié)構(gòu)不太滿(mǎn)意,還想讓flex的文件放在flex_src目錄下,別急,我們可以通過(guò)右鍵?屬性來(lái)設(shè)置。
在這里你可以重新設(shè)置你的flex源文件夾和輸出目錄

7、配置flex默認(rèn)的sdk。這樣配置完,還不行,程序可能還不能正常地運(yùn)行,還需要配置他使用的sdk。

8、馬上就大功告成了,讓我們來(lái)寫(xiě)個(gè)程序測(cè)試一下吧。

1)新建一個(gè)java類(lèi):Hello.java
 

  1. packagecom;  
  2. publicclassHello{  
  3. publicStringhello(Stringname){  
  4. System.out.println("flex調(diào)用我了,真好~~~~");  
  5. return"hello"+name;  
  6. }  

2)為flex配置這個(gè)要調(diào)用的對(duì)象,修改WEB-INF/flex下remoting-config.xml
加入

  1. <destinationiddestinationid="hello"> 
  2. <properties><source>com.Hello  
  3. </source> 
  4. </properties> 
  5. </destination> 

3)編寫(xiě)一個(gè)Flex程序

  1. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  2. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"> 
  3. 將默認(rèn)的第三個(gè)選項(xiàng)改為第一個(gè)選項(xiàng),使用系統(tǒng)默認(rèn)的sdk  
  4. <mx:Script> 
  5. <![CDATA[  
  6. importmx.rpc.events.ResultEvent;  
  7. functiongg(evnet:ResultEvent):void{  
  8. varff:String=evnet.resultasString;  
  9. ggg.text=ff;  
  10. }  
  11. functionremotingSayHello():void{  
  12. varsname:String=nameInput.text;  
  13. h.hello(sname);  
  14. }  
  15. ]]> 
  16. </mx:Script> 
  17. <mx:RemoteObjectdestinationmx:RemoteObjectdestination="hello"id="h"  
  18. result="gg(event)"endpoint="http://localhost:8080/flexweb/messagebroker/amf"> 
  19. </mx:RemoteObject> 
  20. <mx:TextAreaidmx:TextAreaid="ggg"x="109"y="122"/> 
  21. <mx:Buttonlabelmx:Buttonlabel="sayhello"click="remotingSayHello();"x="144"y="193"/> 
  22. <mx:TextInputidmx:TextInputid="nameInput"x="109"y="73"/> 
  23. <mx:Labeltextmx:Labeltext="name"x="47"y="75"/> 
  24. </mx:Application> 
  25.  

 4)重啟tomcat,運(yùn)行flexweb.mxml.

第三種方法,在編譯完后,訪(fǎng)問(wèn)網(wǎng)頁(yè)會(huì)出現(xiàn)404異常。具體原因不詳。但是它仍會(huì)編譯出一個(gè)swf文件,訪(fǎng)問(wèn)這個(gè)swf即可。而第二種方式可以編譯出一個(gè)html文件。訪(fǎng)問(wèn)一下會(huì)出現(xiàn)一下界面:
輸入dfdff,則輸出hellodfdff。說(shuō)明調(diào)用java類(lèi)成功。不信我們可以看看java類(lèi)在控制臺(tái)上的打印。
Flex+Java環(huán)境配置成功,如果用lcds,則不需要預(yù)編譯,可以直接訪(fǎng)問(wèn)mxml文件,lcds會(huì)動(dòng)態(tài)編譯返回結(jié)果。

【編輯推薦】

  1. 解析Flexbuilder4十大新特性
  2. 從Flex Builder更名看Flash平臺(tái)戰(zhàn)略
  3. Flex及FlexBuilder2.0開(kāi)發(fā)環(huán)境詳解
  4. FlexBuilder3.0與Eclipse3.4的完美結(jié)合
  5. 學(xué)習(xí)筆記 FlexBuilder2.0中如何使用基于Lists的控件 

 

責(zé)任編輯:佚名 來(lái)源: po-soft.com
相關(guān)推薦

2010-08-02 16:58:08

Flex配置文件

2009-09-25 14:04:09

Hibernate eHibernate h

2010-07-26 15:42:34

Perl模塊

2020-09-16 18:27:36

Linux方法IP地址

2024-01-02 11:45:00

讀取requestmap

2009-08-05 15:54:49

Web Service

2010-08-04 17:41:52

掛載NFS

2009-11-03 16:20:16

VB.NET文本框

2009-04-21 11:23:56

Oraclespool比較

2010-05-28 10:35:46

SVN搭建測(cè)試服務(wù)器

2010-06-02 17:16:16

自動(dòng)運(yùn)行SVN

2009-11-06 09:48:40

WCF服務(wù)

2010-04-13 09:50:44

Oracle跟蹤

2010-11-24 14:36:25

修復(fù)mysql表

2011-03-30 17:04:24

MySQL添加用戶(hù)

2010-05-26 18:52:12

SVN庫(kù)

2010-06-17 12:48:05

livecd 修復(fù)Gr

2010-02-06 14:35:36

ibmdwRUP迭代

2009-06-18 11:09:42

2009-08-05 13:34:18

C#日期相減
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)