整合 JBuilder 7、WebLogic 7 與 MySQL 開發 EJB 曾是讓許多開發者「欲仙欲死」的噩夢。網路資料多基於舊版本(JB4-6, WLS5-6),且缺乏從配置到部署的完整鏈路指引。本文沉澱實戰經驗,提供經驗證的完整配置流程,涵蓋 BMP 與 CMP 兩種實體 Bean 模式。
ejbdb,用戶 root/111111。mysql.jar 放入 %JAVA_HOME%/lib/ 或自定義目錄(避免軟碟機路徑)。c:\bea\weblogic700\bin\startWLS.cmd(而非 domain 目錄下的腳本),在 CLASSPATH 追加 mysql.jar 路徑。mydomain,Admin Server 與 Managed Server 監聽地址均設為機器實際 IP(非 localhost),建立系統用戶 system/aaaaaa。Name=Mysql Connection Pool,URL jdbc:mysql://localhost:3306/ejbdb,Driver org.gjt.mm.mysql.Driver,屬性 user=root、password=111111,Target 指派 myserver。Name=Mysql Tx Data Source,JNDI ejbPool(EJB 引用關鍵),關聯上述 Pool,勾選 Emulate Two-Phase Commit 與 Row Prefetch Enabled。TEMP/TMP 指向無空格路徑(如 c:\winnt\temp),否則發布失敗。Tools → Configure Libraries 加入 mysql.jar。Tools → Configure Servers 啟用 WebLogic 6.x+,Home Directory 指向 c:/bea/weblogic700/server,Classpath 補充 mysql.jar。Enterprise Setup → CORBA 新增配置,ORB Tools 指向 WebLogic 目錄,輸出目錄無空格。org.gjt.mm.mysql.Driver,URL mysql://localhost:3306/ejbDB(無 jdbc: 前綴),測試通過。AccountApp,選 BMP Entity Bean。com.example.AccountBeanAccountHome,Remote: AccountAccountLocalHome,Local: AccountLocalAccountException。Make Project → F9 運行(自動啟動 WLS)。Deploy 發布,Console 驗證 AccountApp 出現。-- MySQL 建表
CREATE TABLE accounts (
id VARCHAR(60) PRIMARY KEY,
ownerName VARCHAR(60),
balance DOUBLE(8,2) DEFAULT 0.00
);
新建 EJB Test Client AccountClient,編譯運行驗證 CRUD 功能。
CMP 不在 Bean 設計器介面直接 Create EJB,而是:
DataSources 右鍵 Import Schema From Database。jdbc:),JNDI Name 填 ejbPool。ejbPool → 右鍵資料表 productbean → Create CMP 2.0 Entity Bean。Single table mapping,主鍵與欄位拖曳連線。findByPrimaryKey,其餘 Finder 需手工撰寫 EJB-QL:
findByName: SELECT OBJECT(p) FROM ProductBean AS p WHERE p.name = ?1findExpensiveProducts: SELECT OBJECT(p) FROM ProductBean AS p WHERE p.basePrice > ?1findAllProducts: SELECT OBJECT(p) FROM ProductBean AS p WHERE p.productID IS NOT NULLProductbean → 手改 ProductBean)。ejbLoad/ejbStore 錯誤,檢查欄位映射大小寫與資料型別對應。這套環境雖屬經典組合,但完整配置邏輯對理解 Java EE 伺服器整合、資料源管理、EJB 容器契約極具教學價值。掌握此流程,遷移至現代 WildFly、TomEE、Spring Boot + JPA 將輕鬆得多。