整理 WebLogic Server 常見的啟動參數、模式切換、安全性、部署結構與 EJB/JMS 配置等 11 項基礎問題,附帶指令與配置檔說明,適用於管理員與開發人員快速查閱。
編輯啟動腳本(Domain 下 bin/startWebLogic.sh 或 startManagedWebLogic.sh),加入:
set MEM_ARGS=-Xms32m -Xmx200m
或在 setDomainEnv.sh 中設定 USER_MEM_ARGS。-Xms 初始堆,-Xmx 最大堆。
PRODUCTION_MODE=true(生產模式)或 false(開發模式)。WLS_USER=weblogic、WLS_PW=password(明文,不建議生產環境)。$DOMAIN_HOME/servers//security/boot.properties :username=weblogic password=password啟動時會自動加密。
所有 Domain 級配置(JMS、EJB、資料來源、叢集等)儲存在 $DOMAIN_HOME/config/config.xml。此為核心配置檔,建議納入版本控制。
$DOMAIN_HOME/ ├── config/ # config.xml 及子配置 ├── servers/ │ └──/ │ ├── applications/ # 自動部署目錄 (開發模式) │ ├── stage/ # 生產模式部署暫存 │ ├── logs/ # 伺服器日誌 │ └── tmp/ # 暫存檔 └── autodeploy/ # 開發模式自動部署監控目錄
部署 Web 應用:將 WAR 或解壓目錄放入 applications/(或 autodeploy/),結構需符合 Servlet 標準:WEB-INF/web.xml、WEB-INF/classes/ (JavaBean)、WEB-INF/lib/ (JAR)。設定預設 Web 應用 (Context Root = "/") 可直接以 https://host:port/hello.jsp 存取。
管理主控台 → 部署 → 篩選類型「EJB」即可查看所有已發布的 EJB 模組與狀態。
DemoIdentity.jks, DemoTrust.jks)。| EJB 類型 | 標準描述檔 | WebLogic 專用描述檔 | 額外檔案 |
|---|---|---|---|
| Session / Entity / MDB | ejb-jar.xml | weblogic-ejb-jar.xml | — |
| CMP Entity Bean | ejb-jar.xml | weblogic-ejb-jar.xml | weblogic-cmp-rdbms-jar.xml (關聯表/欄位對應) |
遠端/本地介面 (Remote/Local Interface) 以及 Home 介面 不需由 Bean 類別直接實作。容器會產生對應的 EJBObject/EJBLocalObject 實作類別 (Stub/Skeleton),執行期以此代理物件處理遠端呼叫、安全性、交易攔截。Bean 類別僅實作 javax.ejb.SessionBean 或 EntityBean 介面的生命週期方法 (ejbCreate, ejbActivate 等) 及業務邏輯方法。
durable-subscription-name 與 client-id。ejb-jar.xml 的 message-driven → acknowledge-mode (Auto-acknowledge / Dups-ok-acknowledge) 及 weblogic-ejb-jar.xml 的 durable-subscription-deletion。| 模式 | 用途 |
|---|---|
| Session Facade | 用 Session Bean 封裝 Entity Bean 存取,減少遠端呼叫、統一交易邊界 |
| Message Facade | 用 MDB 實現非同步處理,解耦前端請求與後端處理 |
| EJB Command | 用 Command Bean 取代 Session Bean,輕量化業務邏輯封裝 |
| Data Transfer Object (DTO) | 簡化 Entity Bean 遠端資料傳輸,減少細粒度遠端呼叫 |
| Value List Handler | 大量資料分頁查詢,避免一次載入大量 Entity Bean |
| Business Delegate | 客戶端委派業務查找與異常處理,解耦表現層與業務層 |
設計品質直接影響系統效能、擴展性、維護性與開發效率,專案越複雜越需重視架構設計。