一、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要容易。