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

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

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

    posts - 36,comments - 31,trackbacks - 0

    ??? EJB 1.0 1.1規范只定義了一種在EJB組件中引用另一組件的方法,即通過Bean的遠程接口。如果兩個Bean都在同一個容器之內,則這種網絡開銷是不必要的。為解決這個問題,EJB 2.0規范定義了一種新的EJB引用類型,即本地引用。

      一、兩種引用類型

      為了從其他EJB組件訪問某個Bean,容器提供了一種特殊的機制。這種機制允許一個Bean提供者通過稱為EJB引用的“邏輯名字”引用另一個EJBHomeEJB容器利用應用的部署描述器為EJB構造環境,而這些引用在部署描述器中作為特殊的項目聲明。在部署描述器中,部署者把組件代碼中要用到的EJB引用綁定到其他被引用EJBHome

      如前所述,在EJB 2.0規范出現之前,在一個EJB中引用其他Bean只有一種方法,即通過遠程接口,它要求進行跨越網絡的遠程過程調用。如果某個事務由多個Bean協作完成,通過網絡進行多個對象的匯集和釋放將是一項相當繁重的工作。

      EJB 2.0規范新增了一種本地接口類型,允許在同一容器之內的Bean直接互相引用,避免了遠程接口的網絡開銷。本地接口是一種標準的Java接口,而不是從RMI繼承得到。EJB組件的定義可以包含本地接口或遠程接口,或者兩者都定義。

      本地引用的指定方式和傳統的遠程引用一樣,即在部署描述器中指定。事實上,本地引用的部署描述元素與遠程引用的描述元素完全對應。

      下面的代碼片斷是一個典型的遠程引用:

    Product
    ejb/Product
    Entity
    com.xyz.widgets.ProductHome
    com.xyz.widgets.Product
    ../products/product.jar#Product


      下面的代碼片斷是同一Bean的本地引用:

    Product
    ejb/Product
    Entity
    com.xyz.widgets.ProductHome
    com.xyz.widgets.Product
    ../products/product.jar#Product

      下表簡要說明了各個元素的用途:

      二、創建本地接口,通過本地接口訪問EJB

      要把一個現有的遠程接口改為本地接口,有三個地方必須修改:部署描述器,Bean的接口,以及對EJB的調用。前面我們介紹了如何通過部署描述器指定一個本地引用,現在我們要把遠程接口轉換成本地接口,然后修改JNDI查找調用,讓它使用新的本地接口。

      ■ Home接口

      指定Home接口時,現在必須導入的是“javax.ejb.EJBLocalHome”,而不是“javax.ejb.EJBHome”。接口的聲明也必須改變,讓它從“EJBLocalHome”(一個標準Java接口)繼承,而不是從“EJBHome”(一個RMI接口)繼承。同時,從該接口定義的方法中唯一應該拋出的異常是javax.ejb.CreateException,而java.rmi.RemoteException異常則不再必要。

      ■ 本地接口

      指定本地接口時,現在必須導入“javax.ejb.EJBLocalObject”,而不是“javax.ejb.EJBObject”。接口聲明也必須改變,讓它從“EJBLocalObject”(一個本地接口)繼承,而不是從“EJBObject”(一個RMI接口)繼承。

      ■ 執行調用

      創建好接口、設置好部署描述器之后,剩下的工作就是執行JNDI調用,查找對其他EJB的引用。調用Bean的遠程接口時,javax.rmi.PortableRemoteObject的“narrow()”方法匯集經過RMI的調用。對于本地引用,這種開銷就不再必要,這時只需簡單地進行JNDI查找并進行適當的類型定型。下面是一個例子:

      home = (ProductHome) initCtx.lookup("java:comp/env/ejb/Product");

      它不僅提高了效率,而且代碼也比用來獲取遠程接口的代碼更直觀易懂。

      本地接口使得處于同一容器內的兩個EJB組件能夠更高效地進行通信。對于實體Bean的應用來說,這種技術尤其有用,因為與客戶程序直接訪問實體Bean相比,在實踐中,通過會話Bean訪問實體Bean得到了更廣泛的認可。

      如果你準備使用本地引用,請先檢查自己的應用服務器平臺是否支持它。也許,在EJB 2.0規范獲得廣泛應用之前,我們還得等待一段時間。
    posted on 2006-07-31 10:33 心隨我動 閱讀(240) 評論(0)  編輯  收藏 所屬分類: EJB

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


    網站導航:
     
    網站流量統計:
    澳大利亞 ABC 在線英語廣播電臺
    主站蜘蛛池模板: 全免费a级毛片免费看| 色妞www精品视频免费看| 永久免费AV无码网站国产| 亚洲国产成人五月综合网| 国产精品亚洲а∨无码播放麻豆| 成人免费无码大片A毛片抽搐| ASS亚洲熟妇毛茸茸PICS| 中文字幕无码免费久久99| 亚洲一区二区三区高清不卡| 免费精品人在线二线三线区别| 亚洲伊人久久精品| 最新猫咪www免费人成| 亚洲中文字幕一区精品自拍| 色吊丝永久在线观看最新免费| 日韩成人精品日本亚洲| 亚洲人成电影网站国产精品| 成人网站免费大全日韩国产 | 美女视频黄频a免费大全视频| 国产不卡免费视频| 本免费AV无码专区一区| 亚洲一区二区在线免费观看| 无码乱肉视频免费大全合集| 亚洲AV无码一区二区三区电影| 免费在线观看a级毛片| a级毛片高清免费视频就| 亚洲视频一区网站| 女人18毛片a级毛片免费视频| 美女扒开尿口给男人爽免费视频| 伊人久久精品亚洲午夜| 99久久久国产精品免费牛牛 | 亚洲AV无码码潮喷在线观看 | 16女性下面无遮挡免费| 在线亚洲午夜片AV大片| 免费无遮挡无码永久在线观看视频| 人妻免费久久久久久久了| 亚洲国产精品久久66| 免费鲁丝片一级在线观看| 中文在线观看国语高清免费| 亚洲综合综合在线| 国产精品va无码免费麻豆| 免费国产叼嘿视频大全网站|