本文介紹了在JBOSS服務器中發(fā)布數據源的方法,使用的JBOSS版本為6.0.0 Final。

以MySQL為例(其他數據庫方法不變),發(fā)布數據源的步驟如下:
1. 將MySQL的數據庫連接文件mysql-connector-java-5.1.22-bin.jar復制到%JBOSS_HOME%\server\default\lib目錄下。

2. 修改%JBOSS_HOME%\docs\examples\jca目錄下的MySQL的數據源模板mysql-ds.xml文件,以下是我修改好的數據源配置文件,可作參考:
<?xml version="1.0" encoding="UTF-8"?>

<!-- See http://www.jboss.org/community/wiki/Multiple1PC for information about local-tx-datasource -->
<!-- $Id: mysql-ds.xml 97536 2009-12-08 14:05:07Z jesper.pedersen $ -->
<!--  Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->

<datasources>
  
<local-tx-datasource>
    
<jndi-name>MySqlDS</jndi-name>
    
<connection-url>jdbc:mysql://localhost:3306/titan</connection-url>
    
<driver-class>com.mysql.jdbc.Driver</driver-class>
    
<user-name>root</user-name>
    
<password>123123</password>
    
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    
<!-- should only be used on drivers after 3.22.1 with "ping" support
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
    
-->
    
<!-- sql to call when connection is created
    <new-connection-sql>some arbitrary sql</new-connection-sql>
      
-->
    
<!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
    <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
      
-->

    
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
    
<metadata>
       
<type-mapping>mySQL</type-mapping>
    
</metadata>
  
</local-tx-datasource>
</datasources>

注意,修改好的數據源配置文件名必須以"-ds.xml"結尾。

3. 將修改好的數據源配置文件mysql-ds.xml發(fā)布到JBOSS中,即將其拷貝至%JBOSS_HOME%\server\default\deploy目錄下。

至此,經過以上三步,成功地在JBOSS服務器中發(fā)布了一個數據源。

注意:使用數據源時,需要在persistence.xml文件的<persistence-unit>元素中增加如下語句:
<jta-data-source>java:MySqlDS</jta-data-source>

這里"java:"是JBOSS默認的命名空間,其后的"MySqlDS"對應上文mysql-ds.xml文件中的<jndi-nami>MySqlDS</jndi-name>。