<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

    ?? 在本文里,我們將對企業版JavaBean進行討論,以幫助消除你對創建自己第一個EJB的恐懼感,并幫助你步入EJB開發的世界。

       安裝EJB運行和開發環境

      EJB必須要在EJB容器內執行。所以,我們必須安裝一個符合J2EE標準的EJB容器。為了幫助我們部署自己的EJB,我們還需要一個部署工具。來自Sun的、對J2EE的參考實現包含了一個EJB容器和一個EJB部署工具。這個J2EE參考實現能夠在Sun發布的J2EE開發工具包里找到。

      J2EE開發包要依靠Java 2 SDK、標準版(Standard EditionJ2SE)的開發包,所以你也需要把它下載下來。你需要J2SE SDK 來運行參照實現的J2EE服務器,并創建和運行EJB應用程序。

      一旦你下載了開發包,你就要安裝它們,并為每個開發包選擇理想的位置。你要先定義一個叫作JAVA_HOME的環境變量,并將它指向J2SE開發包的安裝目錄。然后,定義一個叫做J2EE_HOME的環境變量,并把它指向J2EE開發包的安裝目錄。

      現在你就準備好開始編寫你的EJB了。

       編寫一個簡單會話EJB

      開發一個EJB所涉及的大多數步驟和概念和我們開發傳統的Java對象(plain-old Java objectPOJO)所使用的是相同的,只有少數的不同之處。下面就是開發和部署EJB的一個基本步驟:

      1. 為你的EJB編寫類和接口。
      2. 為你的EJB編寫部署描述符。
      3. EJB和相關聯的文件打包進一個jar文件。
      4. 部署EJB

      會話bean有兩種不同的類型。在我們開始編寫代碼之前,讓我們來看看它們之間的相同之處和不同之處。

       狀態會話EJB概述

      狀態會話EJB會在單個會話期間維持一種和客戶端的對話狀態。這就表示狀態會話EJB能夠在單個會話期間,維持從一個客戶端跨越多個調用的實例變量。

      一旦客戶端完成了同EJB的交互操作,而且EJB容易刪除了EJB,那么EJB的會話就會結束,用于EJB的所有狀態數據都會被刪除。

       無狀態會話EJB概述

      無狀態會話EJB不會為每個單獨的客戶端都維持一個對話狀態。對無狀態會話EJB的每次調用,都應該被當作是對一個全新的對象實例的請求。因為任何實例-變量狀態都會在調用之間丟失。

      無狀態會話EJB不會被EJB容器保存到第二存儲地里,所以程序員必須要知道:每個客戶端的每次調用之間的所有數據都是瞬時的。無狀態會話EJB的瞬時特性允許EJB容器重復使用EJB實例,因此常常會優化EJB的性能。

       會話Bean之間的關系

      圖A說明了EJB客戶端、EJB容器和幾個會話EJB之間的關系。

      會話EJB包括至少三個強制類/接口。第一個強制類/接口是Component接口。Component接口定義了一些對EJB來說是可視的商業方法,它必須擴展javax.ejb.EJBObject

      這里我們會舉個例子,實現一個非常簡單的無狀態會話EJB,它會在一個叫作getBalance的方法里返回帳目結算。我們Component接口的代碼如下:

      package com.jeffhanson.ejb;

      public interface Account extends javax.ejb.EJBObject, java.rmi.Remote
      {
       public String getBalance() throws java.rmi.RemoteException;
      }

      第二個強制類/接口是Home接口。Home接口被EJB客戶端用來獲取對Bean的組件接口的參照,它必須擴展javax.ejb.EJBHome。我們Home接口的代碼如下:

      package com.jeffhanson.ejb;

      public interface AccountHome extends javax.ejb.EJBHome
      {
      ? public Account create() throws javax.ejb.CreateException,
    ????????????????????????????????? java.rmi.RemoteException;
      }

      第三個強制類/接口是Enterprise Bean類。Enterprise Bean類為Component接口和Home接口提供實現。用于會話EJBEnterprise Bean類必須要實現javax.ejb.SessionBean接口。我們Enterprise Bean類的代碼如下:

      package com.jeffhanson.ejb;

      public class AccountBean
    ?
      implements javax.ejb.SessionBean
     {
    ?? private javax.ejb.SessionContextctx;
    ?
    ?? public void ejbActivate() {}
    ?
    ?? public void ejbCreate() {}

    ?? public void ejbRemove() {}
    ?
    ?? public void ejbPassivate() {}
    ?
    ?? public void setSessionContext(javax.ejb.SessionContextctx)
    ?? {??
    ????? this.ctx = ctx;
    ?? }
    ?
    ?? // business method
    ?? public String getBalance()
    ????? throws java.rmi.RemoteException
    ?? {
    ????? String balance = dataObj.getAccountBalance();
    ????? return(balance);
    ?? }
     }

       結束語

      在本文里,我們通過帶你嘗試了一個簡單的無狀態會話EJB實現的細節,盡力減輕了你可能有的對創建自己第一個EJB的恐懼感。
    posted on 2006-07-27 23:35 心隨我動 閱讀(253) 評論(0)  編輯  收藏 所屬分類: EJB

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


    網站導航:
     
    網站流量統計:
    澳大利亞 ABC 在線英語廣播電臺
    主站蜘蛛池模板: 国产日本亚洲一区二区三区| 在线视频免费观看高清| 亚洲精品在线视频| 羞羞漫画在线成人漫画阅读免费| 区久久AAA片69亚洲| 99久在线国内在线播放免费观看| 国产亚洲情侣一区二区无码AV| 伊人久久亚洲综合影院首页| 99免费观看视频| 亚洲一区二区三区播放在线 | 亚洲欧美成人av在线观看| 99久久这里只精品国产免费| 亚洲不卡1卡2卡三卡2021麻豆| 国国内清清草原免费视频99| 亚洲乱色熟女一区二区三区蜜臀| 四虎影院在线免费播放| 污网站免费在线观看| 1000部无遮挡拍拍拍免费视频观看| 中文字幕亚洲精品资源网| 国产精彩免费视频| 亚洲乱码无人区卡1卡2卡3| 日韩亚洲国产综合久久久| 国产精品一区二区三区免费| 久久精品国产亚洲AV麻豆~| 美女视频黄视大全视频免费的| 亚洲爽爽一区二区三区| 亚洲情侣偷拍精品| 亚洲乱亚洲乱少妇无码| 欧洲精品99毛片免费高清观看| 亚洲AV色香蕉一区二区| 成人免费看黄20分钟| 亚洲精品无码99在线观看| 三级黄色片免费看| 亚洲激情电影在线| 国产在线a不卡免费视频| 亚洲人成色7777在线观看| 日韩精品久久久久久免费| 亚洲另类无码专区首页| 亚洲日韩欧洲乱码AV夜夜摸 | 国产一级婬片A视频免费观看| 亚洲欧洲精品一区二区三区|