一、Tomcat5.5.7+SQL Server2000
1、把数据库JDBC驱动(msutil.jar、mssqlserver.jar、msbase.jar)拷贝到%TOMCAT_HOME%/common/lib和% TOMCAT_HOME%/webapps/yourweb/WEB-INF/lib下。并把tools.jar(可选)、commons-collections-2.1.jar、commons-dbcp-1.2.1.jar、commons-logging-api-1.0.2.jar、commons-pool-1.3.jar拷到%TOMCAT_HOME%/common/lib目录下。
2、修改%TOMCAT_HOME%/conf/server.xml文件,在 <GlobalNamingResources></GlobalNamingResources>之间
添加以下内容:
<!-- Global JNDI resources -->
<GlobalNamingResources>
<Resource name="jdbc/MSSQLDS" type="javax.sql.DataSource" password="sa" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="30" maxWait="5000" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=SuperDB" maxActive="30"/>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
注:maxActive :指定数据库连接池中处于活动状态的数据库连接最大数目,0表示不受限制;maxIdle:指定数据库连接池中处于空闲状态的数据库连接的最大数目,0表示不受限制;maxWait :指定数据库连接池中的数据库连接处于空闲状态的最长时间(单位为毫秒),超过这一事件,将会抛出异常。-1表示可以无限期等待;auth:指定管理Resource的Manager,由两个可选值:Container和Application。Container表示由容器来创建和管理Resource,Application表示由WEB应用来创建和管理Resource。如果在web application deployment descriptor中使用<resource-ref>,这个属性是必需的,如果使用<resource-env-ref>,这个属性是可选的。
3、在%TOMCAT_HOME%/conf/Catalina/localhost下新建一个与你web文件夹同名的xml文件(KuaiBaoWeb.war.xml)
这一步非常重要,如果没有这步就会出错,会出现错误:
Database init error:org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
在文件中内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/MSSQLDS" type="javax.sql.DataSource" password="sa" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="30" maxWait="5000" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=SuperDB" maxActive="30"/>
</Context>
可以看出,就是在元素<Content>里加入第2步同样的内容,根据个人情况做相应修改。
4、修改%TOMCAT_HOME%/webapps/yourweb/WEB-INF下的web.xml文件,在<web-app></web-app>之间添加以下内容:
<resource-ref>
<res-ref-name>jdbc/MSSQLDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
jdbc/MSSQLDS为前面定义的JNDI名字。
相应的获取JNDI的代码:
......
Context initCtx=new InitialContext();
DataSource ds=(DataSource)initCtx.lookup("java:comp/env/jdbc/MSSQLDS")
.......
到此为止,数据源配置完成。
二、Jboss3.2.8+SQL Server2000
1、把数据库JDBC驱动(msutil.jar、mssqlserver.jar、msbase.jar)拷贝到jboss-3.2.8.SP1\server ..\lib目录下。
2、修改mssql-ds.xml文件,如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>MSSQLDS</jndi-name>
<connection-url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=SuperDB</connection-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password>sa</password>
<connection-property name="char.encoding">UTF-8</connection-property>
<min-pool-size>30</min-pool-size>
<max-pool-size>100</max-pool-size>
<blocking-timeout-millis>5000</blocking-timeout-millis>
<idle-timeout-minutes>5</idle-timeout-minutes>
</local-tx-datasource>
</datasources>
获取JNDI代码:
ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:/MSSQLDS");
conn = ds.getConnection();
数据源配置完成。注:JBOSS4.0下,配置多数据源比JBOSS3要容易。