<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    樂在其中

    以JEE為主攻,以Flex為點綴,以Eclipse RCP為樂趣
    請訪問http://www.inframesh.org

    首頁 新隨筆 聯系 管理
      43 Posts :: 0 Stories :: 8 Comments :: 0 Trackbacks

    OpenAMF openamf-config.xml 配置
    第一個標簽
    <amf-serializer>
    <force-lower-case-keys>false</force-lower-case-keys>
    </amf-serializer>
    這個標簽的存在的意義在于當openamf發送傳遞給Flash 客戶端的AMF消息時,是否把用來返回自定義類的Hashmap里面的key轉換成小寫。
    一邊情況下,當我們發送一個hashmap給客戶端時,客戶端把它當作一個custom class的object來對待。
    比如你有一個java方法返回一個hashmap
    public Hashmap getValue(){
    Hashmap resultObj=new Hashmap();
    result.put("nameSpace","com.flashseer.org");
    return resultObj;
    }
    在actionscript中你可以用
    resultObj.nameSpace
    的寫法來引用java里面hashmap中的一個值。
    當你把這個標簽的屬性設置為true的時候,返回給Flash client的object中,所有的key都被轉換成小寫。
    所以,如果你使用Actionscript2.0的時候,因為AS2區分大小寫。你就不可能用resultObj.nameSpace來引用了。
    因為,nameSpace已經被轉換為小寫了。你必須使用namespace來引用。
    這里,官方的example里面注釋說了,
    如果你用actionscrpt2.0的話,把這個設置為false。否則,如果你用了大寫的字母作為key,在客戶端就會出問題。
    如果你用as1的話,可以設置為true
    第二個標簽
    <invoker>
    <name>Java</name>
    <class>org.openamf.invoker.JavaServiceInvoker</class>
    </invoker>
    這個標簽是用來調用java端的服務的。
    這里,提供了許多的invoker供你使用。
    放在這里的是最常用的一個invoker。這個invoker的作用就是根據service的位置在classpath里面找到這個class,并且調用其中的方法。
    另外,還可以使用其他的invoker,
    比如EJB,Spring,WebService都是非常實用的invoker.
    按照需要,放置這些invoker.
    可以在example的配置文件里找到所有的invoker
    第三個標簽:自定義類的映射
    <custom-class-mapping>
    <java-class>org.openamf.examples.Person</java-class>
    <custom-class>org.openamf.examples.Person</custom-class>
    </custom-class-mapping>
    這個映射的作用是讓你的FlashClient接收到正確的類型。
    比如,在flashclient端,你調用一個方法后,接收到一個resultObj
    如果你不進行類型映射,那么,這個resultObj是沒有類型的。他就是一個object.你無法使用這個object的方法,只能通過引用屬性的方法引用到屬性。
    但是,如果你在這里做了映射,在flash里面就可以得到一個具有類型的object。
    用 trace(resultObj instanceof org.openamf.examples.Person) 就可以看到效果。
    這個標簽可以重復,映射多個自定義class
    第四個標簽:命名你的service(注意,這個部分需要使用advancedGateway)
    <service>
                  <!--name這個 node定義一下你的service的名字,這樣,你就不用在flash里面把你的整個class都寫在里面了,而只需要用這個name來代替-->
    <name>Directory</name>
    <!--這個標簽的作用其實就是讓你指定你上面定義的那個name對應哪個class。-->
    <service-location>org.flashseer.Example</service-location>
    <!---這個標簽 同上面的invoker標簽對應,這樣,一旦advancedGateway發現了你定義的這個service,就不用遍歷所有的invoker來查找相應的服務。
    注意如果你沒有定義這個的話,默認情況下,openamf會給所有可能的class打一個分,取分最高的來調用--->
    <invoker-ref>Java</invoker-ref>
    <!--這里定義一下需要call的方法-->
    <method>
    <!-- 方法名 -->
    <name>addPerson</name>
    <!--參數定義,這里的參數可以使用一個class的名字或者使用通配符,
    *就代表許多個參數,?代表一個參數-->
    <parameter>
    <type>*</type>
    </parameter>
    <!-- 這個result-filter實際上是可以自己來寫實現的。實現org.openamf.filter.ResultFilter即可
    其中,class標簽中,是你需要使用的filter。 你可以使用兩個由openamf提供的filter,也可以自己來實現。
    其中parameter的兩個標簽其實就是一個自定義的object,你可以自己隨便定義然后,在實現filter的時候來使用。
          -->
    <result-filter>
    <class>org.openamf.filter.BeanListToRecordSet</class>
    <parameter>
    <name>ignore</name>
    <value>extraInfo</value>
    </parameter>
    </result-filter>
    </method>
    </service>
    這個標簽的意義在于它可以幫助你更快,更方便的找到flash remoting說調用的service.前面也提到了,如果你不指定的話,可能會導致每次openamf都要去做match,計算匹配值,然后取高的。

    posted on 2008-12-26 11:38 suprasoft Inc,. 閱讀(960) 評論(0)  編輯  收藏 所屬分類: RIA/Flex

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


    網站導航:
     
    ©2005-2008 Suprasoft Inc., All right reserved.
    主站蜘蛛池模板: 亚洲精品高清无码视频| 久久www免费人成看国产片| 99久久久国产精品免费牛牛 | 亚洲国产精品无码一线岛国| 乱淫片免费影院观看| 无码国产亚洲日韩国精品视频一区二区三区| 久久亚洲国产精品成人AV秋霞| 精品视频在线免费观看| 亚洲av片劲爆在线观看| 久久精品一区二区免费看| 亚洲综合久久久久久中文字幕| 久久不见久久见免费视频7| 亚洲特级aaaaaa毛片| aa级一级天堂片免费观看| 亚洲乱码无人区卡1卡2卡3| 免费黄色毛片视频| 国产亚洲人成在线影院| 国产精品亚洲综合专区片高清久久久 | 伊人久久大香线蕉免费视频| 亚洲综合区小说区激情区| 巨胸狂喷奶水视频www网站免费| 亚洲精品无码专区久久久| 久久精品视频免费播放| 亚洲乱人伦精品图片| 免费高清资源黄网站在线观看| 免费国产va在线观看| 亚洲欧洲日产国产综合网| 91成人免费观看网站| 国产成人亚洲综合无| 亚洲色精品aⅴ一区区三区| ww在线观视频免费观看| 亚洲色成人网站WWW永久四虎| 亚洲午夜爱爱香蕉片| 84pao强力永久免费高清| 亚洲欧美综合精品成人导航| 国产亚洲一区二区三区在线不卡 | 免费无码又爽又刺激高潮视频| 2020亚洲男人天堂精品| 亚洲综合另类小说色区色噜噜| 18禁男女爽爽爽午夜网站免费| 亚洲aⅴ天堂av天堂无码麻豆|