
<!--Google 468*60橫幅廣告開(kāi)始--><script type="text/javascript"><!-- google_ad_client = "pub-7343546549496470"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "image"; //2007-07-26: CSDN google_ad_channel = "6063905817"; google_color_border = "6699CC"; google_color_bg = "E6E6E6"; google_color_link = "FFFFFF"; google_color_text = "333333"; google_color_url = "AECCEB"; google_ui_features = "rc:6"; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><!--Google 468*60橫幅廣告結(jié)束-->
Flex + LCDS + Java 入門(mén)教程
1. Flex 是什么?
……
2. LCDS 是什么?
LCDS ( LiveCycle Data Service )之前叫做 FDS ( Flex Data Service ),他是基于 java (也有 ColdFusion 版的)后端的數(shù)據(jù)服務(wù)工程,功能包括映射 Java 對(duì)象到 Flex 對(duì)象(包括調(diào)用 Java 類(lèi)的方法)、 RTMP ( Real Time Message Protocol )、代理、服務(wù)端生成 PDF 等等功能,詳細(xì)請(qǐng)參考 LCDS 里的說(shuō)明。官方有下載,需要注冊(cè)會(huì)員(免費(fèi))。
LCDS 實(shí)際是付費(fèi)的,但是免費(fèi)也能使用,似乎是少了多 CPU 的支持。當(dāng)然還有一些其他的數(shù)據(jù)服務(wù),比如 AMFPHP 之類(lèi)的。
當(dāng)然, LCDS 提供的功能我們都能自己實(shí)現(xiàn),并非 Flex 脫離了 LCDS 就不能和后臺(tái)打交道了,除了 RemoteObject 還有 WebSerivce 、 HTTPService 等等。只是說(shuō), LCDS 提供了更多的方便和特性。
3. Java 是什么?
……(此處省略1W字)
三.準(zhǔn)備
1. 下載開(kāi)發(fā)環(huán)境:
Eclipse 3.3 + FlexBuilder3 beta2 插件版 +MyEclipse 6.0 +Lcds + Tomcat 5 和以上(官方都有下載,或者 google 里搜一搜哈)
MyEclipse :做 Java 開(kāi)發(fā)都應(yīng)該知道 MyEclipse 是比較好的 J2EE 項(xiàng)目的開(kāi)發(fā)及部署工具的,我們主要用它來(lái)部署 Flex 和 Java 結(jié)合的項(xiàng)目。 6.0 是適合 Eclipse3.3 版的。他自帶了一個(gè) Tomcat 服務(wù)器
FB3 :相比 FB2 ,他在 LCDS 工程上做了很大的改進(jìn),特別是 beta2 ,項(xiàng)目向?qū)Ц拥囊锥冶? FB2 更好的是, Flex.war 是被打包在你的 Flex 項(xiàng)目中的,而不需要單獨(dú)的部署了。性能上也高出 FB2
LCDS :安裝 lcds 后,起作用的是里面的 flex.war 文件,實(shí)際上,這就是一個(gè) j2ee 的工程。在發(fā)布到 web 應(yīng)用服務(wù)器后(比如 tomcat 、 j4run 等)就會(huì)被解壓成一個(gè)工程。當(dāng)然,在 FB3 里,這個(gè)發(fā)布的過(guò)程會(huì)更加的簡(jiǎn)單。
2. 安裝:
略
四.入門(mén)教程
1. 新建 FlexLCDS 工程
File -> new -> Flex Project …
注:以下設(shè)置絕大多數(shù)都可以在項(xiàng)目屬性中可以修改。
1). 向?qū)Ы缑? 1
<oval id="_x0000_s1039" style="margin-top: 310.2pt; z-index: 14; left: 0px; margin-left: 120.6pt; width: 63pt; position: absolute; height: 39pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shapetype id="_x0000_t75" filled="f" stroked="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="width: 462pt; height: 414.75pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image002.png"></imagedata></shape>
說(shuō)明: Java source folder 就是你自己 java 業(yè)務(wù)源碼存放的根目錄,在 FB3 里, LCDS 項(xiàng)目旨在將 Java J2ee 項(xiàng)目和 FlexLcds 項(xiàng)目混合。
當(dāng)然如果你不選擇 combined 兩個(gè)在一起,那么就麻煩些:要么你再單獨(dú)新建一個(gè) Flex 項(xiàng)目,而這個(gè)項(xiàng)目只寫(xiě) java 代碼。要么再建一個(gè) J2ee 工程寫(xiě) java 代碼,而這個(gè)項(xiàng)目只寫(xiě) Flex 代碼,但最后要把 Java 編譯后的 class 文件放到這個(gè)項(xiàng)目下的 webroot/web-inf/classes 目錄中。即不管怎樣,最后發(fā)布時(shí), java 編譯后的 class 文件必須和 lcds 部署的項(xiàng)目在一起。(聽(tīng)起來(lái)繞昏頭了?那就在一個(gè)工程里吧)
2). 向?qū)Ы缑? 2
<oval id="_x0000_s1042" style="margin-top: 156.75pt; z-index: 17; left: 0px; margin-left: 112.8pt; width: 70.8pt; position: absolute; height: 23.4pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval><oval id="_x0000_s1029" style="margin-top: 132.6pt; z-index: 4; left: 0px; margin-left: 108pt; width: 63pt; position: absolute; height: 23.4pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval><oval id="_x0000_s1026" style="margin-top: 263.4pt; z-index: 1; left: 0px; margin-left: 111.6pt; width: 63pt; position: absolute; height: 39pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval><oval id="_x0000_s1027" style="margin-top: 84pt; z-index: 2; left: 0px; margin-left: 426.6pt; width: 63pt; position: absolute; height: 39pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1026" style="width: 462.75pt; height: 414.75pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image008.png"></imagedata></shape>
說(shuō)明: Target runtime 實(shí)際上沒(méi)什么用(后來(lái)我刪除了配置文件里的對(duì)應(yīng)信息,也沒(méi)問(wèn)題),但是不指定就不能繼續(xù),如果這里顯示的是 <none> 那么就新建一個(gè) Tomcat 的 runtime ,簡(jiǎn)單的只需要指定 tomcat 的安裝目錄即可。
Content folder 實(shí)際上就是最終編譯后的容器目錄,因此, Lcds 的 flex.war 文件將會(huì)發(fā)布到 該目錄 下的 web-inf 下的 flex 目錄中。同時(shí)因?yàn)榻坛滩捎玫氖? MyEclipse ,他默認(rèn)的就是發(fā)布 WebRoot 里的內(nèi)容,為了自動(dòng)化,因此這里改為了 WebRoot (這也是 java 開(kāi)發(fā)的習(xí)慣)
Flex WAR file 指的是安裝了 lcds 后的 flex.war 文件的路徑
Compilation options 指定了 flex 文件的編譯方式,選擇推薦的在 FlexBuilder 里編譯吧,雖然開(kāi)發(fā)時(shí)多耗點(diǎn)時(shí)間,但是在發(fā)布后不會(huì)占用服務(wù)器的編譯處理時(shí)間,對(duì)用戶(hù)來(lái)說(shuō)是有好處的。
Output folder 指的是 Flex 編譯后的 swf 和 html 等文件存放的路徑,這里改為了 WebRoot/bin
3). 向?qū)Ы缑? 3
<oval id="_x0000_s1028" style="margin-top: 396pt; z-index: 3; left: 0px; margin-left: 111.6pt; width: 180pt; position: absolute; height: 39pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1027" style="width: 463.5pt; height: 497.25pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image011.png"></imagedata></shape>
說(shuō)明: Main source folder 是 flex 的源碼存放根目錄,當(dāng)然和 java 源碼分開(kāi)了。
Output folder URL 是在開(kāi)發(fā)過(guò)程中運(yùn)行和調(diào)試的請(qǐng)求路徑,這個(gè)與發(fā)布無(wú)關(guān),不會(huì)影響任何你在程序中使用的路徑,但是能使開(kāi)發(fā)方便
注意: FlexBuilder3 這里存在 bug ,新建工程時(shí),部分自定義的屬性并沒(méi)有保存下來(lái),而必須在新建后的項(xiàng)目屬性中更改,后面有說(shuō)明到
放心這些設(shè)置都可以在以后修改。
4). 新建完成的項(xiàng)目結(jié)構(gòu)看起來(lái)是這樣的
<shape id="_x0000_i1028" style="width: 145.5pt; height: 167.25pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image013.png"></imagedata></shape>
2. 用 MyEclipse 添加 Web 容器
之前說(shuō)到了, MyEclipse 是很好用的 J2EE 的開(kāi)發(fā)插件,其中就包含了部署功能。我們可以?huà)侀_(kāi)煩瑣的手動(dòng)部署,交由 MyEclipse 完成吧,當(dāng)然,首先得讓你的 FlexLCDS 工程變成為 J2EE 的 Web 工程。
<shape id="_x0000_i1029" style="width: 348.75pt; height: 459pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image015.png"></imagedata></shape>
1). 向?qū)Ы缑? 1
<oval id="_x0000_s1031" style="margin-top: 114.15pt; z-index: 6; left: 0px; margin-left: 154.05pt; width: 27pt; position: absolute; height: 23.4pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1030" style="width: 344.25pt; height: 303.75pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image018.png"></imagedata></shape>
注意:不要點(diǎn)快了,把這里的 Create web.xml 取消,這樣就不會(huì)覆蓋 LCDS 創(chuàng)建的 web.xml 文件
現(xiàn)在我們的工程的圖標(biāo)變成了 J2EE Web 工程了,這意味著,你可以用 MyEclipse 來(lái)發(fā)布它或者添加更多容器,比如 hibernate 、 spring 等
<shape id="_x0000_i1031" style="width: 95.25pt; height: 17.25pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image020.png"></imagedata></shape>
3. 部署 FlexLCDS 工程
有了 MyEclipse ,那么你就不用手動(dòng)的部署你的項(xiàng)目了,可以簡(jiǎn)單的通過(guò)
點(diǎn)擊工具欄上的這個(gè)圖標(biāo)
<oval id="_x0000_s1030" style="margin-top: 0px; z-index: 5; left: 0px; margin-left: 63pt; width: 36pt; position: absolute; height: 31.2pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1032" style="width: 138pt; height: 24.75pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image023.png"></imagedata></shape>
1). 部署向?qū)? 1
<oval id="_x0000_s1032" style="margin-top: 109.2pt; z-index: 7; left: 0px; margin-left: 342pt; width: 1in; position: absolute; height: 31.2pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1033" style="width: 378.75pt; height: 327.75pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image026.png"></imagedata></shape>
注意:(如果你的列表中沒(méi)有服務(wù)器,那么就自己建一個(gè))
2). 新建部署 Web 應(yīng)用服務(wù)器
<oval id="_x0000_s1033" style="margin-top: 85.8pt; z-index: 8; left: 0px; margin-left: 90pt; width: 351pt; position: absolute; height: 31.2pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1034" style="width: 394.5pt; height: 396.75pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image029.png"></imagedata></shape>
注意:如果是 MyEclipse6.0 ,則會(huì)自帶一個(gè) Tomcat 服務(wù)器。如果不是 6.0 ,那么點(diǎn) Edit server connectors… 自己添加一個(gè) tomcat 。
點(diǎn) finish 后則會(huì)開(kāi)始部署。成功后會(huì)在 Deployment status 里提示 success ,并且看到列表中你的項(xiàng)目已經(jīng)成功部署
4. 修改一下項(xiàng)目的訪(fǎng)問(wèn)路徑
打開(kāi)項(xiàng)目的屬性,在這里,我們可以重新修改項(xiàng)目編譯和發(fā)布的配置,包括先前向?qū)Ю锏脑O(shè)置
<shape id="_x0000_i1035" style="width: 189pt; height: 390.75pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image031.png"></imagedata></shape>
修改 output folder url
<oval id="_x0000_s1034" style="margin-top: 364.8pt; z-index: 9; left: 0px; margin-left: 255.6pt; width: 162pt; position: absolute; height: 62.4pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval><oval id="_x0000_s1035" style="margin-top: 84pt; z-index: 10; left: 0px; margin-left: 30.6pt; width: 99pt; position: absolute; height: 39pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1036" style="width: 474pt; height: 455.25pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image035.png"></imagedata></shape>
為什么要這么做?
這樣每次發(fā)布都會(huì)自動(dòng)將編譯的最終 swf 文件直接發(fā)布至 WebRoot/bin 目錄下,而下面的 output folder url 則會(huì)在我們啟動(dòng)和調(diào)試項(xiàng)目時(shí),直接請(qǐng)求這個(gè)路徑(這跟發(fā)布無(wú)關(guān),只是我們?cè)陂_(kāi)發(fā)過(guò)程中會(huì)方便些)
5. 修改 Flex Server 的項(xiàng)目容器屬性(非常重要,多數(shù)連接路徑錯(cuò)誤就是這里配置錯(cuò)誤)
改成如下配置
<oval id="_x0000_s1038" style="margin-top: 70.2pt; z-index: 13; left: 0px; margin-left: 198pt; width: 162pt; position: absolute; height: 62.4pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1037" style="width: 456.75pt; height: 277.5pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image038.png"></imagedata></shape>
說(shuō)明:
Root url 當(dāng)然就是你的 web 服務(wù)器的根路徑了, Tomcat 默認(rèn)是 8080 端口,如果改了就自己修改
Context root 就是 LCDS 工程的名稱(chēng)(注意:如果你分開(kāi)為兩個(gè)工程,則這里指的是你 J2ee 項(xiàng)目的名稱(chēng),而不是你 Flex 項(xiàng)目的名稱(chē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
如果 Context root 錯(cuò)了,那么永遠(yuǎn)不可能正確的請(qǐng)求 LCDS 的服務(wù)了 。
確定后,我們來(lái)運(yùn)行測(cè)試一下這個(gè) FlexLCDS 項(xiàng)目是否能正常訪(fǎng)問(wèn)
6. 啟動(dòng)服務(wù)器
<oval id="_x0000_s1041" style="margin-top: 0px; z-index: 16; left: 0px; margin-left: 90pt; width: 36pt; position: absolute; height: 31.2pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1038" style="width: 138pt; height: 24.75pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image023.png"></imagedata></shape>
稍等片刻,等到服務(wù)器完全啟動(dòng)后繼續(xù)下面的操作
7. 運(yùn)行訪(fǎng)問(wèn)
<shape id="_x0000_i1039" style="width: 294.75pt; height: 356.25pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image040.png"></imagedata></shape>
注:如果之前的 Output folder url 配置正確,那么會(huì)自動(dòng)的彈出訪(fǎng)問(wèn)頁(yè)面, DEBUG 時(shí)也是一樣。
<oval id="_x0000_s1040" style="margin-top: 6pt; z-index: 15; left: 0px; margin-left: 129.6pt; width: 315pt; position: absolute; height: 54.6pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1040" style="width: 413.25pt; height: 120pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image043.png"></imagedata></shape>
OK ,一切順利,至此,你已經(jīng)做到了第一步,即,將 Flex 項(xiàng)目、 LCDS 服務(wù)成功的整合至 J2EE web 項(xiàng)目,這樣的好處就是今后發(fā)布省的麻煩了。
五.簡(jiǎn)單的 RemoteObject
1. 什么是 RemoteObject ?
顧名思義,即遠(yuǎn)程對(duì)象。這里指的就是在 Flex 中獲取 Java 里的對(duì)象。有什么用呢?這樣 Flex 可以更加簡(jiǎn)單的獲取服務(wù)端的數(shù)據(jù),比如你在 Java 中有個(gè)方法進(jìn)行了數(shù)據(jù)查詢(xún),取出的結(jié)果是 Array 類(lèi)型,那么你可以很容易通過(guò) Flex 里的 RemoteObject 訪(fǎng)問(wèn)到該類(lèi),并調(diào)用該方法,最后返回的數(shù)據(jù)是 Flex 也兼容的 Array 對(duì)象。
2. 新建 Java 類(lèi)
File -> new ->other (如果你沒(méi)在列表中看到 java class 的話(huà))
1). 新建向?qū)? 1
<shape id="_x0000_i1041" style="width: 369pt; height: 371.25pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image045.png"></imagedata></shape>
2). 向?qū)? 2
<oval id="_x0000_s1036" style="margin-top: 70.2pt; z-index: 11; left: 0px; margin-left: 108pt; width: 108pt; position: absolute; height: 31.2pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1042" style="width: 372pt; height: 442.5pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image048.png"></imagedata></shape>
注意:別忘記了你設(shè)定的 java 源碼根目錄路徑,如果對(duì) java 不熟悉的話(huà),這里我就不解釋了,照著做吧。
3). 編寫(xiě)如下代碼
package com.test;
public class FirstJavaClass {
public String sayHello(String str){
return " 你說(shuō)的是: " +str;
}
}
3. 配置 Flex LCDS 的 Remoting-config.xml
1). 他是 remoteobject 和相關(guān)遠(yuǎn)程訪(fǎng)問(wèn)的配置文件,路徑位于
<oval id="_x0000_s1037" style="margin-top: 296.4pt; z-index: 12; left: 0px; margin-left: 99pt; width: 108pt; position: absolute; height: 23.4pt; text-align: left;" strokeweight="2.25pt" strokecolor="red" filled="f"></oval> <shape id="_x0000_i1043" style="width: 189pt; height: 331.5pt;" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image051.png"></imagedata></shape>
注意:現(xiàn)在 LCDS 是你的項(xiàng)目的一部分了,因此不用來(lái)回的在服務(wù)器中修改配置然后再發(fā)布了。
2). 改寫(xiě)其代碼如下
<? xml version = "1.0" encoding = "UTF-8" ?>
< service id = "remoting-service"
class = "flex.messaging.services.RemotingService" >
< adapters >
< adapter-definition id = "java-object" class = "flex.messaging.services.remoting.adapters.JavaAdapter" default = "true" />
</ adapters >
< default-channels >
< channel ref = "my-amf" />
</ default-channels >
< destination id = "FirstJavaClassRemoteObject" >
< properties >
< source > com.test.FirstJavaClass </ source >
< scope > application </ scope >
</ properties >
</ destination >
</ service >
說(shuō)明:一個(gè) destination 指定的就是一個(gè) RO 對(duì)象,他的 id 就是在 Flex 中 RO 請(qǐng)求的 destination , source 指的是這個(gè) Java 類(lèi)的路徑
注意:在修改了配置文件后可能需要重啟 web 服務(wù)器( Tomcat )
4. 編寫(xiě) mxml 來(lái)請(qǐng)求 RO
1). 打開(kāi) MyFirstLCDS.mxml 編寫(xiě)代碼如下
<?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.ResultEvent;
import mx.controls.Alert;
private function callRO(str:String): void {
firstRO.sayHello(str);
firstRO.addEventListener(ResultEvent.RESULT,getROResult);
}
private function getROResult(e:ResultEvent) : void {
Alert.show(e.result.toString());
}
]]>
</mx:Script>
<mx:RemoteObject id=" firstRO " destination=" FirstJavaClassRemoteObject " />
<mx:Button click="callRO( 'hi~ 你好 ' )" label=" 請(qǐng)求 " />
</mx:Application>
2) . OK ,
<!--新Google 468*60橫幅廣告開(kāi)始--><script type="text/javascript"><!-- google_ad_client = "pub-7343546549496470"; /* 468x60, 創(chuàng)建于 08-8-6 */ google_ad_slot = "7368701459"; google_ad_width = 468; google_ad_height = 60; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><!--新Google 468*60橫幅廣告結(jié)束-->
<!--新Google 468x15 橫鏈接單元開(kāi)始--><script type="text/javascript"><!-- google_ad_client = "pub-7343546549496470"; /* 468x15 橫鏈接單元 */ google_ad_slot = "5785741422"; google_ad_width = 468; google_ad_height = 15; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><!--新Google 468x15 橫鏈接單元結(jié)束-->
<!-- Google Reader shared發(fā)布代碼開(kāi)始 --><script type="text/javascript" src="http://www.google.com/reader/ui/publisher.js"></script><script type="text/javascript" src="http://www.google.com/reader/public/javascript/user/00697638153916680411/state/com.google/broadcast?n=5&callback=GRC_p(%7Bc%3A%22green%22%2Ct%3A%22%5Cu8FD9%5Cu4E9B%5Cu6587%5Cu7AE0%5Cu4E5F%5Cu503C%5Cu5F97%5Cu4E00%5Cu770B%22%2Cs%3A%22false%22%7D)%3Bnew%20GRC"></script><!-- Google Reader shared發(fā)布代碼結(jié)束 -->
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
