在tomcat5.5中通过jndi datasource连接mysql需要注意的问题
我们都知道可以通过jndi datasource连接关系型数据库是一种连接方式,但tomcat5.5与之前的版本不太相同,在%TOMCAT_HOME%\conf\server.xml的</host>内配置datasource,以前是
Copy code<Context path="/appName" docBase="appName" reloadable="true">
<Resource name="jdbc/mysql" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mysql">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/test</value>
</parameter>
<parameter>
<name>driverClassName</name><value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>admin</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>3000</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>100</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
</ResourceParams>
</Context>
现在是
Copy code<Context path="/appName" docBase="appName" reloadable="true">
<Resource name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="10"
maxIdle="100"
maxWait="3000"
username="root"
password="admin"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
/>
</Context>
第一种会产生异常如下
Copy codeorg.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540) at net.sf.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:59) at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:292) ... 20 more Caused by: java.sql.SQLException: No suitable driver at java.sql.DriverManager.getDriver(DriverManager.java:243) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773) ... 23 more
所以大家一定要注意你采用的tomcat版本,5.5一下的两种都可以,以上包括5.5用第2种
-----------------------------------------------------------
以上是在网上找到的,在tomcat6下的配置需要第二种,经过我的实验发现第一种会产生上面的异常, 推荐在6下使用第二种方法
----------------------------------------------------
我们都知道可以通过jndi datasource连接关系型数据库是一种连接方式,但tomcat5.5与之前的版本不太相同,在%TOMCAT_HOME%\conf\server.xml的</host>内配置datasource,以前是
Copy code<Context path="/appName" docBase="appName" reloadable="true">
<Resource name="jdbc/mysql" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mysql">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/test</value>
</parameter>
<parameter>
<name>driverClassName</name><value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>admin</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>3000</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>100</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
</ResourceParams>
</Context>
现在是
Copy code<Context path="/appName" docBase="appName" reloadable="true">
<Resource name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="10"
maxIdle="100"
maxWait="3000"
username="root"
password="admin"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
/>
</Context>
第一种会产生异常如下
Copy codeorg.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540) at net.sf.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:59) at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:292) ... 20 more Caused by: java.sql.SQLException: No suitable driver at java.sql.DriverManager.getDriver(DriverManager.java:243) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773) ... 23 more
所以大家一定要注意你采用的tomcat版本,5.5一下的两种都可以,以上包括5.5用第2种
-----------------------------------------------------------
以上是在网上找到的,在tomcat6下的配置需要第二种,经过我的实验发现第一种会产生上面的异常, 推荐在6下使用第二种方法
----------------------------------------------------