国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
通過blazeds讓java與flex通信(II) - roadwalker的日志 - 網(wǎng)...

通過blazeds讓java與flex通信(II)

Flex 2009-10-31 01:36:00 閱讀86 評(píng)論0   字號(hào): 訂閱

轉(zhuǎn)載自:http://enboga.javaeye.com/blog/294758(非本源)

本文接著通過blazeds讓java與flex通信(I)繼續(xù)講,這次主要是把flex項(xiàng)目變成web項(xiàng)目加入java文件。

一.引

       很多人在帖子和群中問到過一些關(guān)于建立Flex+LCDS(FDS)工程的問題,由于操作上的東西,很難簡(jiǎn)單說清楚,于是寫了一個(gè)簡(jiǎn)單的教程(本來很早就答應(yīng)過的,結(jié)果被newfish逮住做東西,加上公司的事,一直抽不出時(shí)間哈,現(xiàn)在想換換頭腦,偷樂一下懶哈,各位別跟newfish大大說),幫助大家入門,其實(shí)這些東西都是在LCDS的sample中包含了的(當(dāng)然,sample只是包含源碼)。

 

       本教程通過圖文介紹和對(duì)一些關(guān)鍵性的地方進(jìn)行解釋,讓大家了解如何新建Flex的LCDS工程,并利用工具快速整合和部署J2EE項(xiàng)目和LCDS項(xiàng)目,掌握了簡(jiǎn)單的請(qǐng)求RemoteObject和配置的方法,初步掌握LCDS的應(yīng)用之一。

 

二.介紹

1.    Flex是什么?

       ……

 

2.        LCDS是什么?

LCDS(LiveCycle Data Service)之前叫做FDS(Flex Data Service),他是基于java(也有ColdFusion版的)后端的數(shù)據(jù)服務(wù)工程,功能包括映射Java對(duì)象到Flex對(duì)象(包括調(diào)用Java類的方法)、RTMP(Real Time Message Protocol)、代理、服務(wù)端生成PDF等等功能,詳細(xì)請(qǐng)參考LCDS里的說明。官方有下載,需要注冊(cè)會(huì)員(免費(fèi))。

 

LCDS實(shí)際是付費(fèi)的,但是免費(fèi)也能使用,似乎是少了多CPU的支持。當(dāng)然還有一些其他的數(shù)據(jù)服務(wù),比如AMFPHP之類的。

 

當(dāng)然,LCDS提供的功能我們都能自己實(shí)現(xiàn),并非Flex脫離了LCDS就不能和后臺(tái)打交道了,除了RemoteObject還有WebSerivce、HTTPService等等。只是說,LCDS提供了更多的方便和特性。

 

3.        Java是什么?

……

 

三.準(zhǔn)備

1.    下載開發(fā)環(huán)境:

Eclipse 3.3 + FlexBuilder3 beta2 插件版 +MyEclipse 6.0 +Lcds + Tomcat 5和以上(官方都有下載,或者google里搜一搜哈)

 

MyEclipse:做Java開發(fā)都應(yīng)該知道MyEclipse是比較好的J2EE項(xiàng)目的開發(fā)及部署工具的,我們主要用它來部署Flex和Java結(jié)合的項(xiàng)目。6.0是適合Eclipse3.3版的。他自帶了一個(gè)Tomcat服務(wù)器

 

FB3:相比FB2,他在LCDS工程上做了很大的改進(jìn),特別是beta2,項(xiàng)目向?qū)Ц拥囊锥?,而且比FB2更好的是,F(xiàn)lex.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ā)布的過程會(huì)更加的簡(jiǎn)單。

 

       2.    安裝:

              略

 

四.入門教程

       1.    新建FlexLCDS工程

              File -> new -> Flex Project …

              注:以下設(shè)置絕大多數(shù)都可以在項(xiàng)目屬性中可以修改。

 

              1).   向?qū)Ы缑?

說明: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)目只寫java代碼。要么再建一個(gè)J2ee工程寫java代碼,而這個(gè)項(xiàng)目只寫Flex代碼,但最后要把Java編譯后的class文件放到這個(gè)項(xiàng)目下的webrootweb-infclasses目錄中。即不管怎樣,最后發(fā)布時(shí),java編譯后的class文件必須和lcds部署的項(xiàng)目在一起。(聽起來繞昏頭了?那就在一個(gè)工程里吧)

             

2).   向?qū)Ы缑?

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

 

Content folder實(shí)際上就是最終編譯后的容器目錄,因此,Lcds的flex.war文件將會(huì)發(fā)布到 該目錄 下的web-inf下的flex目錄中。同時(shí)因?yàn)榻坛滩捎玫氖荕yEclipse,他默認(rèn)的就是發(fā)布WebRoot里的內(nèi)容,為了自動(dòng)化,因此這里改為了WebRoot(這也是java開發(fā)的習(xí)慣)

 

Flex WAR file 指的是安裝了lcds后的flex.war文件的路徑

Compilation options指定了flex文件的編譯方式,選擇推薦的在FlexBuilder里編譯吧,雖然開發(fā)時(shí)多耗點(diǎn)時(shí)間,但是在發(fā)布后不會(huì)占用服務(wù)器的編譯處理時(shí)間,對(duì)用戶來說是有好處的。

 Output folder 指的是Flex編譯后的swf和html等文件存放的路徑,這里改為了WebRootin

 

3).   向?qū)Ы缑?

 

 說明:Main source folder 是flex的源碼存放根目錄,當(dāng)然和java源碼分開了。Output folder URL 是在開發(fā)過程中運(yùn)行和調(diào)試的請(qǐng)求路徑,這個(gè)與發(fā)布無關(guān),不會(huì)影響任何你在程序中使用的路徑,但是能使開發(fā)方便

 注意:FlexBuilder3這里存在bug,新建工程時(shí),部分自定義的屬性并沒有保存下來,而必須在新建后的項(xiàng)目屬性中更改,后面有說明,放心這些設(shè)置都可以在以后修改。

 

4).   新建完成的項(xiàng)目結(jié)構(gòu)看起來是這樣的

 

       2.    用MyEclipse添加Web容器

之前說到了,MyEclipse是很好用的J2EE的開發(fā)插件,其中就包含了部署功能。我們可以拋開煩瑣的手動(dòng)部署,交由MyEclipse完成吧,當(dāng)然,首先得讓你的FlexLCDS工程變成為J2EE的Web工程。

             

 

              1).   向?qū)Ы缑?

             

     注意:不要點(diǎn)快了,把這里的Create web.xml取消,這樣就不會(huì)覆蓋LCDS創(chuàng)建的web.xml文件,現(xiàn)在我們的工程的圖標(biāo)變成了J2EE Web 工程了,這意味著,你可以用MyEclipse來發(fā)布它或者添加更多容器,比如hibernate、spring等

             

 

3.      部署FlexLCDS工程

有了MyEclipse,那么你就不用手動(dòng)的部署你的項(xiàng)目了,可以簡(jiǎn)單的通過,點(diǎn)擊工具欄上的這個(gè)第二個(gè)圖標(biāo)

 

1).   部署向?qū)?

注意:(如果你的列表中沒有服務(wù)器,那么就自己建一個(gè))

2).   新建部署Web應(yīng)用服務(wù)器

注意:如果是MyEclipse6.0,則會(huì)自帶一個(gè)Tomcat服務(wù)器。如果不是6.0,那么點(diǎn)Edit server connectors…自己添加一個(gè)tomcat。點(diǎn)finish后則會(huì)開始部署。成功后會(huì)在Deployment status里提示success,并且看到列表中你的項(xiàng)目已經(jīng)成功部署

      

4.      修改一下項(xiàng)目的訪問路徑

打開項(xiàng)目的屬性,在這里,我們可以重新修改項(xiàng)目編譯和發(fā)布的配置,包括先前向?qū)Ю锏脑O(shè)置

 

       修改output folder url

為什么要這么做?

這樣每次發(fā)布都會(huì)自動(dòng)將編譯的最終swf文件直接發(fā)布至WebRootin目錄下,而下面的output folder url則會(huì)在我們啟動(dòng)和調(diào)試項(xiàng)目時(shí),直接請(qǐng)求這個(gè)路徑(這跟發(fā)布無關(guān),只是我們?cè)陂_發(fā)過程中會(huì)方便些)

      

5.      修改Flex Server的項(xiàng)目容器屬性(非常重要,多數(shù)連接路徑錯(cuò)誤就是這里配置錯(cuò)誤)

改成如下配置

說明:

Root url 當(dāng)然就是你的web服務(wù)器的根路徑了,Tomcat默認(rèn)是8080端口,如果改了就自己修改

 

Context root 就是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

如果Context root錯(cuò)了,那么永遠(yuǎn)不可能正確的請(qǐng)求LCDS的服務(wù)了。確定后,我們來運(yùn)行測(cè)試一下這個(gè)FlexLCDS項(xiàng)目是否能正常訪問

 

6.      啟動(dòng)服務(wù)器(第三個(gè)圖標(biāo))

稍等片刻,等到服務(wù)器完全啟動(dòng)后繼續(xù)下面的操作

 

7.      運(yùn)行訪問

 

 

注:如果之前的Output folder url配置正確,那么會(huì)自動(dòng)的彈出訪問頁面,DEBUG時(shí)也是一樣。

 

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ù)查詢,取出的結(jié)果是Array類型,那么你可以很容易通過Flex里的RemoteObject訪問到該類,并調(diào)用該方法,最后返回的數(shù)據(jù)是Flex也兼容的Array對(duì)象。

      

2.        新建Java類

File -> new ->other(如果你沒在列表中看到j(luò)ava class的話)

1).   新建向?qū)?

 

2).   向?qū)?

注意:別忘記了你設(shè)定的java源碼根目錄路徑,如果對(duì)java不熟悉的話,這里我就不解釋了,照著做吧。

 

3).   編寫如下代碼

package com.test;

public class FirstJavaClass {

   public String sayHello(String str){

        return "你說的是:"+str;

   }

}

 

3.        配置Flex LCDS的Remoting-config.xml

1).   他是remoteobject和相關(guān)遠(yuǎn)程訪問的配置文件,路徑位于

注意:現(xiàn)在LCDS是你的項(xiàng)目的一部分了,因此不用來回的在服務(wù)器中修改配置然后再發(fā)布了。

 

2).   改寫其代碼如下

<?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>

 

說明:一個(gè)destination 指定的就是一個(gè)RO對(duì)象,他的id就是在Flex中RO請(qǐng)求的destination,source 指的是這個(gè)Java類的路徑

 

注意:在修改了配置文件后可能需要重啟web服務(wù)器(Tomcat)

      4.        編寫mxml來請(qǐng)求RO

1).  打開MyFirstLCDS.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.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,保存好后,用之前的方法來運(yùn)行一下看看?

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MyEclipse配置Tomcat,部署j2ee項(xiàng)目
在eclipse MyEclipse下配置建立J2EE工程--黃曄博客
eclipse j2ee導(dǎo)入myeclipse后報(bào)錯(cuò)的解決
Flex遠(yuǎn)程調(diào)用機(jī)制RemoteObject應(yīng)用技巧
將 Flex 集成到 Java EE 應(yīng)用程序的最佳實(shí)踐
BlazeDS入門教程
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服