本篇為系列教學第二部分,手把手演示在 WebSphere Studio Application Developer (WSAD) 中建立雙介面 EJB 應用的完整專案結構、資料模型、EJB 元件與 Web 元件,並詳述專案依賴配置與 CMP 關係映射關鍵步驟。
進入 DB2 控制中心,建立資料庫 dualDB 並執行建表腳本:
CREATE TABLE PERSON (
ID INTEGER NOT NULL PRIMARY KEY,
FIRSTNAME VARCHAR(40),
LASTNAME VARCHAR(40)
)
腳本亦收錄於下載包 Table.ddl 中。
依序建立,命名嚴格遵循慣例:
| 專案類型 | 專案名稱 | 用途說明 | 關鍵設置 |
|---|---|---|---|
| Java Project | DualJavaModule00 | 共享 Value Object (VO) | 建立套件 dual.value,放入 Person 類 |
| J2EE 1.3 (EAR) | DualEARForAllInOne | All-in-One 拓撲部署佔位符 | 最終包含所有模組 |
| J2EE 1.3 (EAR) | DualEARForEJBContainer | 純 EJB 容器部署 (分離容器架構用) | 僅含 EJB 模組 + Java 模組 |
| J2EE 1.3 (EAR) | DualEARForWeb | 純 Web 容器部署 (分離容器架構用) | 僅含 Web 模組 (可由 AllInOne 替代,但建議分離) |
| EJB 2.0 (JAR) | DualEJBModule01 | 實體 Bean 模組 (CMP) | 關聯 DualEARForEJBContainer,套件 dual.ejb |
| EJB 2.0 (JAR) | DualEJBModule02 | 無狀態會話 Bean 模組 | 關聯 DualEARForEJBContainer,**依賴 DualEJBModule01** |
| Web (WAR) | DualWebModule03 | Servlet/JSP/HTML 前端 | 進階選項關聯 DualEARForWeb,套件 dual.servlet,不勾選多餘特性 |

圖 3:J2EE 視圖中的專案列表
dual.value.Person JavaBean (可從下載包複製),實作 Serializable,含 id、firstName、lastName 屬性與 getter/setter。DualEntity (圖 4)。id (int)。firstName、lastName (String)。dual.ejb.DualEntityRemoteHome、Remote = dual.ejb.DualEntityRemote (修改預設值)。ejb/dual/ejb/DualEntityHome。
圖 4:DualEntity EJB 定義

圖 5:CMP 欄位與命名慣例設定
替代做法:複製下載包原始碼至專案資料夾 → Refresh → 用原始碼為藍本建立 Bean → 再複製 ejb-jar.xml 覆蓋。
DualSession,類型 Stateless。dual.ejb.DualSessionRemoteHome、Remote = dual.ejb.DualSessionRemote。ejb-jar.xml 覆蓋。DualServlet。DualServlet.java、web.xml、index.html、result.jsp 至專案。DualEJBModule02 → Properties → Java Build Path → Projects → 勾選 DualJavaModule00、DualEJBModule01。同步至 Java JAR Dependencies、Project References。DualWebModule03 → Properties → Java Build Path → 勾選 DualEJBModule02、DualJavaModule00。同時在 Web Library Projects 中同樣勾選這兩個專案 (關鍵,確保 WAR 打包包含依賴 JAR)。完成後所有編譯錯誤應消失。
DualEJBModule01 → Generate → EJB to RDB Mapping。PERSON 表。
圖 6:EJB 到 RDB 映射操作
DualEJBModule01、DualEJBModule02 執行:右鍵 → Generate → Deployment and RMIC Code。至此,雙介面 EJB 應用的骨架已完整建立:VO 共享模組、實體/會話 Bean 雙模組、Web 前端、EAR 部署單元、資料庫映射與專案依賴鏈路。下一篇將深入剖析 JNDI 綁定配置與核心原始碼邏輯。