JBoss 4.0 默認使用 HypersonicSQL,企業級應用往往需對接 Oracle、MySQL、Sybase、DB2、Informix 等主流數據庫。本文系統梳理 JBoss 4.0 數據源配置全流程,涵蓋驅動部署、DS XML 模板修改、CMP 映射配置、安全域設置,提供開箱即用的配置模板。
| 文件 | 路徑 | 職能 | 可替換文件 |
|---|---|---|---|
standardjaws.xml | server/default/conf/ | CMP 實體 Bean 標準部署描述符,定義數據源、類型映射、表映射、Finder 方法 | jaws.xml (放入 EJB-JAR/META-INF/) |
standardjbosscmp-jdbc.xml | server/default/conf/ | CMP 容器標準配置,定義默認數據源、字段映射策略 | jbosscmp-jdbc.xml (放入 EJB-JAR/META-INF/) |
*-ds.xml | server/default/deploy/ | 數據源定義(JCA 連接器配置) | — |
login-config.xml | server/default/conf/ | 安全域配置,關聯數據源認證 | — |
server/default/lib/docs/examples/jca/ 複製對應 *-ds.xml 至 server/default/deploy/<!-- oracle-ds.xml 或 oracle-xa-ds.xml -->
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<connection-url>jdbc:oracle:thin:@<host>:<port>:<sid></connection-url>
<jndi-name>OracleDS</jndi-name>
<!-- jaws.xml -->
<datasource>java:/OracleDS</datasource>
<type-mapping>Oracle8</type-mapping>
<!-- jbosscmp-jdbc.xml -->
<datasource>java:/OracleDS</datasource>
<datasource-mapping>Oracle8</datasource-mapping>
<!-- login-config.xml -->
<application-policy name="OracleDbRealm">
<login-module code="org.jboss.resource.security.ConfiguredIdentityLoginModule" flag="required">
<module-option name="principal">sa</module-option>
<module-option name="userName">sa</module-option>
<module-option name="password"></module-option>
<module-option name="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=OracleDS</module-option>
</login-module>
</application-policy>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<connection-url>jdbc:mysql://<host>/<dbname></connection-url>
<jndi-name>MySqlDS</jndi-name>
<type-mapping>mySql</type-mapping>
<datasource-mapping>mySql</datasource-mapping>
<application-policy name="MySqlDbRealm">...</application-policy>
<driver-class>com.sybase.jdbc2.jdbc.SybDriver</driver-class>
<connection-url>jdbc:sybase:Tds:<host>:<port>/<dbname></connection-url>
<jndi-name>SybaseDS</jndi-name>
<type-mapping>Sybase</type-mapping>
<datasource-mapping>Sybase</datasource-mapping>
<application-policy name="SybaseDbRealm">...</application-policy>
<driver-class>COM.ibm.db2.jdbc.app.DB2Driver</driver-class>
<connection-url>jdbc:db2:<dbalias></connection-url>
<jndi-name>DB2DS</jndi-name>
<type-mapping>DB2</type-mapping>
<datasource-mapping>DB2</datasource-mapping>
<application-policy name="DB2DbRealm">...</application-policy>
<driver-class>com.informix.jdbc.IfxDriver</driver-class>
<connection-url>jdbc:informix-sqli://<host>:<port>:informixserver=<ifx_server></connection-url>
<jndi-name>InformixDS</jndi-name>
<type-mapping>InformixDB</type-mapping>
<datasource-mapping>InformixDB</datasource-mapping>
<application-policy name="InformixDbRealm">...</application-policy>
Oracle8、mySql)完全一致jboss.xml 中 `Binding [JMS Destination: java:/OracleDS...]JCA:service=DataSourceBinding,name=OracleDS 狀態ClassNotFoundException (驅動未部署)、Communications link failure (URL/網絡)、No ManagedConnections available (池耗盡)JBoss 4.0 通過標準化 JCA 配置實現多数据库無縫切換。掌握驅動部署 → DS 定義 → CMP 映射 → 安全域四步法,配合各數據庫專屬驅動類、URL 格式、類型映射名,即可快速完成企業級數據源接入。建議將常用配置封裝為項目模板,提升交付效率。