Java海闊天空

          編程是我的生活,但生活不僅僅是編程。

          RemoteObject與Java類通訊

          今天摸索了一下Flex3中使用RemoteObject和Java類的通訊問題,感覺非常方便,雖然使用HttpService也可以,但多了一個控制器,并且還要對數據進行處理;而使用RemoteObject,則可能直接訪問類方法。

          要注意的是在編譯Java文件時,不能使用JDK1.5以上的版本,開始我用的是JDK1.6,Tomcat容器啟動的時候,提示版本異常,后來改成Jdk1.5,錯誤才得以消除。

          雖然程序運行成功,但我一直沒找到將Web Project與Flex Project整合的好方法,Eclipse插件在我這里似乎有問題,所以,我是先使用命令編譯好類,然后放到Flex工程中去的。記得安裝LCDS服務器,管方網站有下載,并提供了序列號。

          廢話少說,看步驟:

          第一步:為了測試Flex對復雜類型List的支持,所以我寫了一個方法用于返回元素類型為Student的List。先看Student類代碼:
          package com.aptech.flex;

          public class Student

          {

          private int sid;

          private String sname;

          public Student(int sid, String sname){

          this.sid = sid;

          this.sname = sname;

          }

          public Student(){

          }

          public int getSid(){

          return this.sid;

          }

          public String getSname(){

          return this.sname;

          }

          public void setSid(int sid){

          this.sid = sid;

          }

          public void setSname(String sname){

          this.sname = sname;

          }

          }

          第二步:創建示意性的業務方法,返回List<Student>集合,習慣使用泛型,如果不用泛型應該也能處理。
          package com.aptech.flex;

          import java.util.*;

          public class HelloWorld

          {

          public String sayHello(String str){

          return str + "你好";

          }

          public List<Student> strList(){

          List<Student> list = new ArrayList<Student>();

          list.add(new Student(1, "張三"));

          list.add(new Student(2, "李四"));

          list.add(new Student(3, "王八"));

          return list;

          }

          }

          第三步:修改<Tomcat>/lcds/flex/remoting-config.xml配置文件,添加如下語句:

          <destination id = "hw">

          <properties>

          <source>com.aptech.flex.HelloWorld</source>

          <scope>application</scope>

          </properties>

          </destination>

          在該文件中,貌似不能寫中文注釋,啟動容器時出現異常。

          第四步:創建Flex工程,定義<mx:RemoteObject />,內容如下:

          <mx:RemoteObject id="hwro" destination="hw"></mx:RemoteObject>

          這里的destination必須和第三步的<destination id = "hw">一致。

          第五步:定義一個按鈕,并觸發單擊事件。

          <mx:Button x="123" y="154" label="訪問JAVA類" click="doJava(event)"/>

          doJava事件定義如下:

          internal function doJava(event: Event): void{

          //hwro.sayHello("李贊紅");

          hwro.strList();

          hwro.addEventListener(ResultEvent.RESULT, onCallback);

          }

          以下是結果處理方法:

          private function onCallback(event: ResultEvent): void{

          var ac: ArrayCollection = event.result as ArrayCollection;

          var arr: Array = ac.toArray();

          var str: String = "";

          for(var a in arr){

          str += arr[a].sid + "," + arr[a].sname + ""n";

          }

          Alert.show(str);

          }

          Flex將Java類的List自動轉換成了ArrayCollection類型,該示例中List元素類型為Student,則可以使用E.屬性來訪問。

          posted on 2008-08-20 11:34 李贊紅 閱讀(6955) 評論(4)  編輯  收藏

          評論

          # re: RemoteObject與Java類通訊 2008-08-20 18:00 枯寬

          新工作第一天上班,也要整flex,看了一天的Flex,門外漢,呵呵  回復  更多評論   

          # re: RemoteObject與Java類通訊 2008-08-25 09:25 單飛

          RemoteObject是要收費的吧?不如自己調用HttpRequest發送請求和傳送對象.  回復  更多評論   

          # re: RemoteObject與Java類通訊[未登錄] 2009-07-20 16:50 Mars

          彼此,我也一樣啊!哈哈  回復  更多評論   

          # re: RemoteObject與Java類通訊[未登錄] 2011-04-28 10:29

          受教了,謝謝  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統計

          常用鏈接

          留言簿(12)

          隨筆檔案(28)

          相冊

          技術友情博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 康保县| 正阳县| 上林县| 平度市| 遵化市| 房山区| 虹口区| 杭锦后旗| 秦皇岛市| 黄大仙区| 哈巴河县| 苍梧县| 高青县| 财经| 高台县| 会宁县| 洞口县| 元朗区| 柳江县| 岢岚县| 安陆市| 张家口市| 垦利县| 从化市| 四子王旗| 神农架林区| 肇东市| 德化县| 郁南县| 桂东县| 广南县| 潼关县| 西贡区| 隆德县| 堆龙德庆县| 恭城| 澄城县| 开江县| 马山县| 石城县| 车致|