雖然技術棧已歷史久遠,但該環境搭建過程體現了 Java EE 開發環境的核心要素:JDK、應用伺服器、資料庫、IDE 整合、資料源配置與部署驗證。本文梳理標準化搭建流程,供維護舊系統或理解演進歷程參考。
| 組件 | 版本 | 安裝路徑 |
|---|---|---|
| JDK | 1.4.2_06 | D:\j2sdk1.4.2_06 |
| JBoss | 4.0.1 RC1 | D:\jboss4.0 |
| Oracle | 9i | 預設 |
| JBuilder | 2005 | 預設 |
j2sdk-1_4_2_06-Windows-i586-p.exe,安裝至 D:\j2sdk1.4.2_06JAVA_HOME=D:\j2sdk1.4.2_06
JBOSS_HOME=D:\jboss4.0
Path=%JAVA_HOME%\bin;%JBOSS_HOME%\bin;%Path%
解壓 jboss-4.0.1RC1.zip 至 D:\jboss4.0
複製 classes12.zip (JDK 1.4 對應) 至 $JBOSS_HOME/server/default/lib/
$JBOSS_HOME/docs/examples/jca/oracle-xa-ds.xml 至 $JBOSS_HOME/server/default/deploy/oracle-ds.xml<datasources>
<local-tx-datasource>
<jndi-name>OracleDS</jndi-name>
<connection-url>jdbc:oracle:thin:@localhost:1521:oradb</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>hrms</user-name>
<password>hrms</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
關鍵點:connection-url 格式 thin:@host:port:SID,type-mapping 需匹配資料庫版本。
D:\jboss4.0$JBOSS_HOME/server/default/deploy/db_test.war/
├── index.jsp
└── WEB-INF/
├── web.xml
└── jboss-web.xml
<%@ page import="java.sql.*, javax.sql.DataSource, javax.naming.InitialContext" %>
<%@ page contentType="text/html; charset=GBK" %>
<h3>測試 JBoss 連接 Oracle 9i 資料庫</h3>
<%
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/OracleDS");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL");
while (rs.next()) {
out.println(rs.getString(1) + "<br>");
}
conn.close();
%>
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"https://java.sun.com/dtd/web-app_2_3.dtd">
<web-app></web-app>
<jboss-web></jboss-web>
$JBOSS_HOME/bin/run.bathttps://localhost:8080/db_test| 現象 | 原因 | 解決 |
|---|---|---|
| ClassNotFoundException: OracleDriver | 驅動包未放入 lib 目錄 | 確認 classes12.zip 在 server/default/lib |
| JNDI Lookup 失敗 | 資料源部署未生效或名稱錯誤 | 檢查 deploy 目錄 xml、jndi-name 一致性 |
| ORA-12505 / 12514 | SID/Service Name 錯誤 | tnsping 測試、確認 listener.ora |
| 中文亂碼 | 字符集不匹配 | JSP pageEncoding、資料庫 NLS_LANG 設定一致 |
standalone.xml / domain.xml經典三層架構(IDE + AS + DB)環境搭建的核心邏輯不變:JDK 基礎 → AS 運行時 → DB 驅動與資料源 → IDE 整合 → 部署驗證。掌握此流程有助於理解現代容器化、雲原生部署的本質——只是將各組件標準化、映像化、編排化而已。