JBoss 4.0 採用 JCA (Java EE Connector Architecture) 管理數據源,核心配置文件:
standardjaws.xml / jaws.xml:CMP 實體 Bean 映射、數據源 JNDI 名、類型映射standardjbosscmp-jdbc.xml / jbosscmp-jdbc.xml:CMP 容器配置、SQL 方言、關係映射*-ds.xml (deploy 目錄):數據源定義(連接池、驅動、URL、事務類型)預設使用 HypersonicSQL,生產環境必須替換為企業級數據庫。
server/default/libdocs/examples/jca/ 複製對應模板到 server/default/deploy<!-- oracle-ds.xml (非XA) 或 oracle-xa-ds.xml (XA) -->
<datasources>
<local-tx-datasource> 或 <xa-datasource>
<jndi-name>OracleDS</jndi-name>
<connection-url>jdbc:oracle:thin:@host:1521:sid</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>scott</user-name>
<password>tiger</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>20</max-pool-size>
</local-tx-datasource>
</datasources>
驅動/URL 對照:
| 驅動類型 | Class | URL 格式 |
|---|---|---|
| Thin (Type 4) | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@host:port:sid |
| OCI (Type 2) | oracle.jdbc.driver.OracleDriver | jdbc:oracle:oci8:@tnsname |
| XA | oracle.jdbc.xa.client.OracleXADataSource | 同 Thin |
<!-- mysql-ds.xml -->
<local-tx-datasource>
<jndi-name>MySQLDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>pass</password>
</local-tx-datasource>
類型映射:standardjbosscmp-jdbc.xml 中設 <type-mapping>mySQL</type-mapping>
com.sybase.jdbc2.jdbc.SybDriver (jConnect 5.2+)jdbc:sybase:Tds:host:port/dbnameSybasecom.ibm.db2.jcc.DB2Driver (Universal Driver)jdbc:db2://host:port/dbnameDB2com.informix.jdbc.IfxDriverjdbc:informix-sqli://host:port/dbname:INFORMIXSERVER=serverInformix<datasource>java:/OracleDS</datasource>
<type-mapping>Oracle9i</type-mapping>
<datasource>java:/OracleDS</datasource>
<type-mapping>Oracle9i</type-mapping>
server/default/lib(非 WAR/EAR 內)*-ds.xml 是否在 deploy 目錄且命名以 -ds.xml 結尾java:/YourDS 格式ClassNotFoundException、SQLExceptionJBoss 4.x 已停止維護,新專案建議直接使用 WildFly (JBoss AS 7+) 或 Payara/GlassFish,配置模式相似但支援 Jakarta EE、鐵克森管理、CLI 腳本化等現代特性。