程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 靈活使用EJB的本地和遠程接口(二)

靈活使用EJB的本地和遠程接口(二)

編輯:關於JAVA

在 Application Developer 中設置項目

步驟 1. 創建數據模型和持久性存儲

用於 Dual 應用程序的數據模型與 “Hello World”J2EE 應用程序中的是一樣的。先進入 DB2,再創建名為 dualDB 的數據庫,然後在數據庫中創建表 PERSON:

CREATE TABLE PERSON
   (
   ID
   INTEGER NOT NULL PRIMARY KEY,
   FIRSTNAME VARCHAR(40),
   LASTNAME
   VARCHAR(40)
   )

在下載的 ZIP 文件的 Table.ddl 中提供了此腳本。

步驟 2. 創建項目

在這一步中,我們將創建一組項目,其中的每個項目都將用於不同的目的。例如我們將把實體 Bean 和會話 Bean 放在不同的 JAR 中,之所以這樣做是因為較大的 J2EE 應用程序常常是由若干 JAR 或項目組成的。請一個接一個地創建以下項目:

a.Java 項目:DualJavaModule00。在此項目中,創建包 dual.value。我們將把 VO 的類 Person 放入其中。

b.J2EE 1.3 項目:DualEARForAllInOne。此項目將是 All-in-One 拓撲的占位符。

c.J2EE 1.3 項目:DualEARForEJBContainer。此項目只准備用作 EJB 容器。

4.J2EE 1.3 項目:DualEARForWeb。此項目只准備用作 Servlet 容器。此外,我們還可以使用 DualEARForAllInOne 來達到相同的目的,因為它們惟一的不同之處在於項目依賴性。然而,最好保持它們分離。

5.EJB 2.0 項目:DualEJBModule01。與 DualEARForEJBContainer 相關聯。創建包 dual.ejb(在 ejbModule 文件夾中)。

6.EJB 2.0 項目:DualEJBModule02。與 DualEARForEJBContainer 相關聯。同樣地,創建包 dual.ejb。使此項目依賴於 DualEJBModule01。(稍後將對依賴性作進一步的介紹。)

7.Web 項目:DualWebModule03。在創建此項目時,請選中 Advanced options 復選框,使其與 DualEARForWeb 相關。在此 Web 項目內創建一個包 dual.servlet。不選定所有的 WebProject features,因為此練習不需要它們。

在完成了初始項目結構之後,工作台中的 J2EE 視圖應該看起來如圖 3 所示。

圖 3. 具有項目的工作台

在 Project Navigator 視圖中,您可以看到所有已創建的項目。

步驟 3. 創建項目內容

a.在 DualJavaModule00 項目中,創建名為 dual.value.Person 的 Java Bean。您可以從下載的內容中復制此 Bean。通過右擊項目名並選擇 Refresh 來刷新項目。

b.在 DualEJBModule01 中,創建具有具有容器管理的持久性(Container Managed Persistence,CMP)的實體 Bean。將其命名為 DualEntity(圖 4),具有類型 int 的鍵字段 id 和 firstName 和 lastName 作為持久性 String 字段。選中本地和遠程客戶端視圖,如圖 5 所示。我們將使用 Remote Home Interface 的名稱 dual.ejb.DualEntityRemoteHome 和遠程接口的名稱 dual.ejb.DualEntityRemote,因而需要更改缺省名。EJB 綁定名將為ejb/dual/ejb/DualEntityHome。

圖 4. DualEntity EJB

圖 5. CMP 字段和命名約定

另一種方法是,將源代碼從下載的文件復制到項目文件夾中,刷新項目,然後如上創建實體 Bean,用該代碼作為膜板(圖 5)。這還將創建 ejb-jar.xml 和綁定描述符。在此之後,您還可以將 ejb-jar.xml 從下載的文件復制到項目中。

c.在 DualEJBModule02 中,創建無狀態會話 Bean(稱為 DualSession)。另外,您還可以復制源代碼的內容,刷新項目,然後用該代碼作為膜板創建 DualSession 會話 Bean。與上面類似,我們將需要本地和遠程接口,Remote Home Interface 的名稱為 dual.ejb.DualSessionRemoteHome,遠程接口的名稱為 dual.ejb.DualSessionRemote。(檢查為命名約定提供的源代碼。)從下載的文件中復制 ejb-jar.xml。稍後我們將進行代碼分析。在分析完成之後,您將得到許多錯誤消息。現在忽略它們;在下一步確定項目依賴性時將解決這些錯誤。

d.在 DualWebModule03 中,創建名為 DualServlet 的 Servlet。此外,完成這項任務還有一種更快速的方法,就是從下載的文件中復制源代碼 DualServlet.java。您也可以將 web.xml、index.html 和 result.jsp 復制到項目文件夾中。另外,您會得到許多錯誤消息,但是現在我們將通過確定項目依賴性來解決這些錯誤。

步驟 4. 確定項目依賴性和 EJB 到 RDB 映射

a.通過調整項目特性中的 Java Build Path 來使 DualEJBModule02 項目依賴於 DualJavaModule00 和 DualEJBModule01 項目。在選擇 OK 按鈕之後,此項目的錯誤應該消失。

b.同樣地,使 DualWebModule03 依賴於 DualEJBModule02 和 DualJavaModule00,采取的方式是再次調整項目特性中的 Java Build Path,在 Web Library Projects 設置中壓需要進行做同樣的調整。此後,您就不應該有錯誤消息。

c.要將 DualEntity Bean 映射到關系數據庫(RDB)表 PERSON,可以選擇 DualEJBModule01,再右擊並選擇 Generate... => EJB to RDB Mapping ...,然後使用如下選項:

創建一個新的後端文件夾。

對於 EJB/RDB 映射,使用“Meet In The Middle”選項。

要建立數據庫連接,可以選擇 DB name, userID, password, DB2 Universal Database 8.1,然後接受剩余選項的所有缺省值。

選擇 PERSON 表供導入。

選擇 Match By Name and Type 選項。

首先選擇 Bean,再選擇表,然後右擊並選擇 Match by Type。

圖 6. EJB 到 RDB 映射

d.為 DualEJBModule01 和 DualEJBModule02 選擇 Generate... => Deployment and RMIC Code...。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved