??xml version="1.0" encoding="utf-8" standalone="yes"?>
· 前言
Jboss 4.0的开发h员版本是一个开源的 应用服务?/font> Q他把HypersonicDB作ؓ他的~省数据库。然而,开发h员也许还要用除了HypersonicDB以外其他U类的数据库Q在q篇文章中我们将看到如何在Jboss上配|用其他的数据库?
· ?
Jboss4.0使用了JDBC配置文g来配|数据库q接Q它?/font> EJB 和其?/font> J2EE 应用提供了数据源(data source)q行讉K。如果你要用HypersonicDB以外的数据库你就要修改这个配|文件。这文章将着重讲解下面的几个部分Q?
1) Jboss的EJB部v描述W?
2) Oralce数据库的配置
3) MySQL 数据库的配置
4) Sysbase数据库的配置
5) DB2 数据库的配置
6) Infomix数据库的配置
· Jboss的EJB部v描述W?
standardjaws. XML Q位于X:\jboss4\server\default\confQ是一个映CMP 实体EJB的标准部|描q文件。它用于配置CMP实体EJBQ你也可以用jaws.xml代替。你可以把这个文件copy到ejb .jar文g中的META-INF目录下。这个文件用于描qC面的信息Q?
1) 描述一个数据源和映类型?
2) 描述EJB映射的表
3) 描述EJB的finderҎ
4) 描述cd映射
q里的数据源描述的是一个JNDI名称Q可以通过q个JNDI来获得一个数据源q接池。Jboss4~省的数据源使用的是HypersonicDB。如果用其他的数据源你需要修改jaws.xml文g?
standardjbosscmp-jdbc.xmlQ位于X:\jboss4\server\default\confQ是配置Jboss CMP容器的标准部|描q文Ӟ你也可以使用一个自定义的配|文?-jbosscmp-jdbc.xml来代替它。这个文件也攑֜EJB.jar文g的META-INF目录中。缺省用的q是HypersonicDB作ؓ数据库,q里也需要修攏V?
· Oracle 数据库的配置
Oracle以它的运行稳定和可靠成ؓ了一个非常受Ƣ迎的企业数据库。要在Jboss 上配|用Oracle的话我们要做的第一件事是把Oracle的JDBC 驱动 E序复制到ClassPath下。我们把q个JDBC驱动E序复制到server/default/lib目录下。ؓ了用Oracle的事务处理数据源我们q要?docs/examples/jca/oracle-xa-ds.xml复制?server/default/deploy目录下。如果用的事非事务处理的数据源Q就?docs/examples/jca/oracle-ds.xml文g复制?server/default/deploy目录下?
下一步,我们需要修改oracle-de.xml配置文g。其中的<driver-class/>标签?lt;connection-url/>标签的设|如下:
Oracle OCI Type 2 Driver
Class: oracle.jdbc.driver.OracleDriver
URL: jdbc:oracle:oci8:@<database>
Oracle OCI Thin Type 4 Driver
Class: oracle.jdbc.driver.OracleDriver
URL: jdbc:oracle:thin:@<host>:<port>:<database>
Oracle OCI XA Type 2 Driver
Class: oracle.jdbc.xa.client.OracleXADataSource
URL: jdbc:oracle:thin:@<host>:<port>:<database>
Oracle OCI Type 2 Driver
Class: oracle.jdbc.driver.OracleDriver
URL: jdbc:oracle:oci8:@<database>
在Connection URL?lt;host>是安装Oracle的计机L名,<port>是oracle数据库的端口Q?lt;database>是数据库名称。下一步,我们修改standardjaws.xml 或jaws.xml配置文gQƈ?lt;datasource> ?<type-mapping>元素q只Z面这P
<jaws>
<datasource>java:/OracleDS</datasource>
<type-mapping>Oracle8</type-mapping>
</jaws>
下一步,再修改standardjbosscmp-jdbc.xml ?jbosscmp-jdbc.xml配置文gQ设|?lt;datasource> ?<datasource-mapping>元素使用Oracle?
<jbosscmp-jdbc>
<defaults>
<datasource>java:/OracleDS</datasource>
<datasource-mapping>Oracle8</datasource-mapping>
</defaults>
</jbosscmp-jdbc>
最后我们需要修改login-config.xml文g来用OracleQ下面是login-config.xml文g?lt;application-policy>元素Q?
<application-policy name = "OracleDbRealm">
<authentication>
<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>
</authentication>
</application-policy>
修改了oracle-ds.xml, standardjaws.xml, standardjbosscmp-jdbc.xml,?
login-config.xml 文g之后可以再Jboss4中用Oracle了?
· MySQL数据库配|?
MySQL是一个开放源代码的数据库Q有很多开源项目和型的社团都在用它。要在Jboss4中用MySQL的话首先要把MySQL的JDBC驱动攑ֈCLASSPATH中。同P把它复制?server/default/lib目录下,再把/docs/examples/jca/mysql-ds.xml复制?server/default/deploy目录下。修改mysql-ds.xml文gQ设|?lt;driver-class/>?com.mysql.jdbc.Driver再把<connection-url/>讄?
jdbc:mysql://<mysqlhost>/<database>Q其?lt;mysqlhost>是数据库L?lt;database>是数据库名?
然后需要设|standardjaws.xml ?jaws.xml文g?lt;datasource>?lt;type-mapping>元素Q?
<jaws>
<datasource>java:/MySqlDS</datasource>
<type-mapping>mySql</type-mapping>
</jaws>
同样也需要把standardjbosscmp-jdbc.xml ?jbosscmp-jdbc.xml文g?lt;datasource> ?<datasource-mapping>元素讄Z面这P
<jbosscmp-jdbc>
<defaults>
<datasource>java:/MySqlDS</datasource>
<datasource-mapping>mySql</datasource-mapping>
</defaults>
</jbosscmp-jdbc>
最后再修改login-config.xml文g来用MySQLQ?
<application-policy name = "MySqlDbRealm">
<authentication>
<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=MySqlDS
</module-option>
</login-module>
</authentication>
</application-policy>
修改了mysql-ds.xml, standardjaws.xml, standardjbosscmp-jdbc.xml,和login-config.xml 文g可以在Jboss上用MySQL了?/font>
· SysBase数据?/a>配置
Sybase Adaptive Server EntERPrises(ASE)是Sysbase公司的数据库服务?/a>。ASE可以在Unix?a target=_blank>Linuxq_上用。同h们要把它的数据库驱动攑ֈCLASSPATH中,把它复制?server/default/lib目录下,然后?docs/examples/jca/sybase-ds.XML 复制?server/default/deploy目录下。修改sybase-ds.xml文g?lt;driver-class/>讄?com.sybase.jdbc2.jdbc.SybDriver再把<connection-url/>讄?jdbc:sybase:Tds:<host>:<port>/<database>Q其?lt;host><port><database>分别Z机名、端口名和数据库名。同样需要修改standardjaws.xml ?jaws.xml 文g?<datasource> ?lt;type-mapping> 元素Q?
<jaws>
<datasource>Java:/SybaseDS</datasource>
<type-mapping>Sybase</type-mapping>
</jaws>
再修改standardjbosscmp-jdbc.xml ?jbosscmp-jdbc.xml 文g?<datasource> ?<datasource-mapping>元素Q?
<jbosscmp-jdbc>
<defaults>
<datasource>java:/SybaseDS</datasource>
<datasource-mapping>Sybase</datasource-mapping>
</defaults>
</jbosscmp-jdbc>
最后修改login-config.xml 文g来用Sysbase数据?讄 <application-policy/> 元素Q?
<application-policy name = "SybaseDbRealm">
<authentication>
<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=SybaseDS
</module-option>
</login-module>
</authentication>
</application-policy>
修改了sybase-ds.xml, standardjaws.xml, standardjbosscmp-jdbc.xml, ?
login-config.xml文g后就可以在JBOSS中用Sysbase了?
· DB2数据库配|?
IBM的DB2是一个完善、用方便的数据库服务器Q它可以在LinuxQUNIX?a class=wordstyle _blank?="">windows/" target="_blank">Windowsq_上用。在JBOSS4上用DB2只要把db2java.zip复制?server/default/lib目录下。然后复?docs/examples/jca/db2-ds.xml?server/default/deploy目录下,然后修改<driver-class/> 元素?COM.ibm.db2.jdbc.app.DB2Driver Q?<connection-url/> 元素?jdbc:db2:其中?lt;database>元素代表数据库服务名?
<jaws>
<datasource>java:/DB2DS</datasource>
<type-mapping>DB2</type-mapping>
</jaws>
下面是相应的 standardjbosscmp-jdbc.xml (?jbosscmp-jdbc.xml)文g:
<jbosscmp-jdbc>
<defaults>
<datasource>java:/DB2DS</datasource>
<datasource-mapping>DB2</datasource-mapping>
</defaults>
</jbosscmp-jdbc>
最后在login-config.xml文g中加上下面的内容Q?
<application-policy name = "DB2DbRealm">
<authentication>
<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=DB2DS
</module-option>
</login-module>
</authentication>
</application-policy>
完成上面的配|就可以在Jboss上用DB2?
· Informix 数据库配|?br>
IBM的Infoxmix数据库服务器用于作ؓ数据仓库、分析和报告。在Jboss4上用Informix数据库,首先要把它相应的数据库JDBC驱动复制?server/default/lib目录下,然后Q把/docs/examples/jca/informix-ds.xml 复制?/server/default/deploy目录下,如果你用的是事务的(XA)JDBC复刉?docs/examples/jca/informix-xa-ds.xml文g?
下一步要作的是修改q个informix-ds.xml文gQ把<driver-class/>元素讄为:com.informix.jdbc.IfxDriver?lt;connection-url/>元素讄?
jdbc:informix-sqli://<host>:<port>:informixserver=<ifx_server>Q?
其中Q?lt;host>,<port>,<ifx_server>分别代表数据库主机名、数据库端口和数据库服务名。然后修改standardjaws.xml ?jaws.xml文g?lt;datasource> ?<type-mapping>元素Q?
<post>
<jaws>
<datasource>java:/InformixDS</datasource>
<type-mapping>InformixDB</type-mapping>
</jaws>
把standardjbosscmp-jdbc.xml ?jbosscmp-jdbc.xml文g中的<datasource> ?<datasource-mapping>元素讄Z面这P
<jbosscmp-jdbc>
<defaults>
<datasource>java:/InformixDS</datasource>
<datasource-mapping>InformixDB</datasource-mapping>
</defaults>
</jbosscmp-jdbc>
最后在login-config.xml文g中加?lt;application-policy/>元素Q?
<application-policy name = "InformixDbRealm">
<authentication>
<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=InformixDS
</module-option>
</login-module>
</authentication>
</application-policy>
q样Q你可以在Jboss4中用Informix数据库了?
· l论
Jboss4默认情况下用的是Hypersonic数据库,但如你所见我们只要简单的修改几个配置文g可以用市面上行的其他数据库?/font>