Tomcat中配置数据源分两种,一种为全局数源,一种为单个web应用,无论哪种方式都必须先把数据库driver放到
commons/lib下面。
一、如果只想为一个web应用配置一个专用的数据源,则只需要如下配置即可:
在/Tomcat conf/Catalina/localhost中建立context.xml文件
<
Context
path
="/ScmWeb1"
reloadable
="true"
docBase
="${catalina.home}/webapps/ScmWeb1"
>
< Resource name ="jdbc/CrmRs" auth ="Container" type ="javax.sql.DataSource" ></ Resource >
< ResourceParams name ="jdbc/CrmRs" >
< parameter >
< name > maxActive </ name >
< value > 100 </ value >
</ parameter >
< parameter >
< name > maxIdle </ name >
< value > 30 </ value >
</ parameter >
< parameter >
< name > maxWait </ name >
< value > 10000 </ value >
</ parameter >
< parameter >
< name > username </ name >
< value > xxxxxxxx </ value >
</ parameter >
< parameter >
< name > password </ name >
< value > xxxxxxx </ value >
</ parameter >
< parameter >
< name > driverClassName </ name >
< value > oracle.jdbc.driver.OracleDriver </ value >
</ parameter >
< parameter >
< name > url </ name >
< value > jdbc:oracle:thin:@10.8.1.133:1527:crmsev </ value >
</ parameter >
</ ResourceParams-- >
</ Context >
< Resource name ="jdbc/CrmRs" auth ="Container" type ="javax.sql.DataSource" ></ Resource >
< ResourceParams name ="jdbc/CrmRs" >
< parameter >
< name > maxActive </ name >
< value > 100 </ value >
</ parameter >
< parameter >
< name > maxIdle </ name >
< value > 30 </ value >
</ parameter >
< parameter >
< name > maxWait </ name >
< value > 10000 </ value >
</ parameter >
< parameter >
< name > username </ name >
< value > xxxxxxxx </ value >
</ parameter >
< parameter >
< name > password </ name >
< value > xxxxxxx </ value >
</ parameter >
< parameter >
< name > driverClassName </ name >
< value > oracle.jdbc.driver.OracleDriver </ value >
</ parameter >
< parameter >
< name > url </ name >
< value > jdbc:oracle:thin:@10.8.1.133:1527:crmsev </ value >
</ parameter >
</ ResourceParams-- >
</ Context >
在spring applicationContext中的引用如下:
<!--
通过JNDI 使用应用服务器 的Connection Pool
-->
< bean id ="dataSource" class ="org.springframework.jndi.JndiObjectFactoryBean" >
< property name ="jndiName" value ="java:comp/env/jdbc/CrmRs" />
</ bean >
< bean id ="dataSource" class ="org.springframework.jndi.JndiObjectFactoryBean" >
< property name ="jndiName" value ="java:comp/env/jdbc/CrmRs" />
</ bean >
在java中引用此数据源如下:
Context ctx=new InitialContext();
DataSource ds=ctx.lookup("java:comp/env/jdbc/CrmRs");
二、如果多个web应用共用数据源,则可以配置全局数据源,在Tomcat 5.0/conf 下的server.xml文件中配置
,在文件<GlobalNamingResources>节点中加上如下描述
<!--
User Own DataSource
-->
< Resource name ="jdbc/CrmRs" auth ="Container" type ="javax.sql.DataSource" >
</ Resource >
< ResourceParams name ="jdbc/CrmRs" >
< parameter >
< name > maxActive </ name >
< value > 100 </ value >
</ parameter >
< parameter >
< name > maxIdle </ name >
< value > 30 </ value >
</ parameter >
< parameter >
< name > maxWait </ name >
< value > 10000 </ value >
</ parameter >
< parameter >
< name > username </ name >
< value > xxxxxx </ value >
</ parameter >
< parameter >
< name > password </ name >
< value > xxxxxxxxx </ value >
</ parameter >
< parameter >
< name > driverClassName </ name >
< value > oracle.jdbc.driver.OracleDriver </ value >
</ parameter >
< parameter >
< name > url </ name >
< value > jdbc:oracle:thin:@10.8.1.133:1527:crmsev </ value >
</ parameter >
</ ResourceParams >
< Resource name ="jdbc/CrmRs" auth ="Container" type ="javax.sql.DataSource" >
</ Resource >
< ResourceParams name ="jdbc/CrmRs" >
< parameter >
< name > maxActive </ name >
< value > 100 </ value >
</ parameter >
< parameter >
< name > maxIdle </ name >
< value > 30 </ value >
</ parameter >
< parameter >
< name > maxWait </ name >
< value > 10000 </ value >
</ parameter >
< parameter >
< name > username </ name >
< value > xxxxxx </ value >
</ parameter >
< parameter >
< name > password </ name >
< value > xxxxxxxxx </ value >
</ parameter >
< parameter >
< name > driverClassName </ name >
< value > oracle.jdbc.driver.OracleDriver </ value >
</ parameter >
< parameter >
< name > url </ name >
< value > jdbc:oracle:thin:@10.8.1.133:1527:crmsev </ value >
</ parameter >
</ ResourceParams >
对此数据源的引用,如下:在Tomcat 5.0/conf/Catalina/localhost下建立 工程名(也可以随便取名).xml,内容如下:
<
Context
path
="/xxWeb"
reloadable
="true"
docBase
="${catalina.home}/webapps/xxWeb"
>
< ResourceLink name ="jdbc/CrmRs" global ="jdbc/CrmRs" type ="javax.sql.DataSource" />
</ Context >
< ResourceLink name ="jdbc/CrmRs" global ="jdbc/CrmRs" type ="javax.sql.DataSource" />
</ Context >
下spring中,java中的引用和第一种方式相同