記錄兩年前(約 2003 年)搭建的生產級開源 J2EE 平台全景:開發環境、應用伺服器叢集、資料存儲三大層次,含詳細配置步驟、mod_jk 連接器調優、部署流程與實戰專案結構。雖版本較舊,**架構思想、配置邏輯、避坑經驗仍具參考價值**。
| 層次 | 組件 | 版本(當時) |
|---|---|---|
| 開發環境 | JBuilder 7 Enterprise + JBoss 3.0.0 插件 | JBuilder 7, JBoss 3.0.0 |
| 應用伺服器 | JBoss 3.0.0 (內嵌 Tomcat 4.0.3) + Apache 2.0.4 | JBoss 3, Tomcat 4, Apache 2 |
| 資料存儲 | MySQL (ODBC/JDBC 雙模式) | MySQL 3.23/4.0 |
JBuilder7/lib/ext。Tools → Configure Servers → JBoss 3.x → Enable → Home Directory → Custom 頁籤設定啟動/工作目錄。httpd.conf 關鍵片段:
Listen *:80
ServerName apache
DirectoryIndex index.html index.jsp
AddDefaultCharset GB2312
Include D:/Apache2/conf/JK/mod_jk.conf
# 虛擬主機範例
<VirtualHost *>
ServerName app.example.com
DocumentRoot "E:/Room/testonline2.5/defaultroot"
JkMount /test/servlet/* ajp13
JkMount /test/*.jsp ajp13
</VirtualHost>
mod_jk.conf:
LoadModule jk_module D:/Apache2/conf/JK/mod_jk.dll
JkLogLevel info
JkWorkersFile D:/Apache2/conf/JK/workers.properties
JkLogFile D:/Apache2/conf/JK/mod_jk.log
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
workers.properties 核心**:
workers.tomcat_home=D:/Apache2/Tomcat4
workers.java_home=C:/J2SE
ps=\
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
Tomcat server.xml** 啟用 AJP13 連接器:
<Connector className="org.apache.ajp.tomcat4.Ajp13Connector" port="8009" />
MySQL Connector/J 驅動,**需注意字符集設置**(MySQL 早期版本無預設 charset,易亂碼),JDBC URL 加 ?useUnicode=true&characterEncoding=GBK。| 類型 | 步驟 |
|---|---|
| Web 應用 (WAR) | 1) 打包 .war 放 %JBOSS_HOME%/server/default/deploy 自動部署;2) 或解壓後在 Apache 配置同名虛擬目錄指向解壓路徑(靜態資源由 Apache 直接服務)。 |
| 企業應用 (EAR) | 1) JBuilder 建 EJB Module + Web Module;2) 配置 EJB JNDI 名、Web 模塊 ejb-ref;3) 新建 EAR 編譯;4) 部署 EAR(Web 上下文為根)。 |
包含 JSP 前端、Struts 控制器、Session Bean 業務邏輯、MySQL 持久化,驗證全棧連通性。
「開源平台搭建是工程師的成人禮:從下載、解壓、改配置、看日誌、查源碼,每一步都在加深對分佈式系統的理解。版本會變,原理不變。」