经过N小时的努力,终于解决了在tomcat5.0上配置jndi出现Cannot create JDBC driver of class 的问题。数据库为mysql server 5.0。
错误原因为:
<
parameter
>
< name > driveClassName </ name >
< value > com.mysql.jdbc.Driver </ value >
</ parameter >
< name > driveClassName </ name >
< value > com.mysql.jdbc.Driver </ value >
</ parameter >
上面的driveClassName写错了,应该为driverClassName
下面给出正确的配置方法,以免下次继续出现这种低级错误。
< Server port ="8005" shutdown ="SHUTDOWN" debug ="0" >
<!-- Comment these entries out to disable JMX MBeans support -->
<!-- You may also configure custom components (e.g. Valves/Realms) by
including your own mbean-descriptor file(s), and setting the
"descriptors" attribute to point to a ';' seperated list of paths
(in the ClassLoader sense) of files to add to the default list.
e.g. descriptors="/com/myfirm/mypackage/mbean-descriptor.xml"
-->
< Listener className ="org.apache.catalina.mbeans.ServerLifecycleListener"
debug ="0" />
< Listener className ="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
debug ="0" />
<!-- Global JNDI resources -->
< GlobalNamingResources >
<!-- 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" >
</ Resource >
< ResourceParams name ="UserDatabase" >
< parameter >
< name > factory </ name >
< value > org.apache.catalina.users.MemoryUserDatabaseFactory </ value >
</ parameter >
< parameter >
< name > pathname </ name >
< value > conf/tomcat-users.xml </ value >
</ parameter >
</ ResourceParams >
</ GlobalNamingResources >
< Service name ="Catalina" >
< Connector
port ="80" maxThreads ="150" minSpareThreads ="25" maxSpareThreads ="75"
enableLookups ="false" redirectPort ="8443" acceptCount ="100"
debug ="0" connectionTimeout ="20000"
disableUploadTimeout ="true" />
< Connector port ="8009"
enableLookups ="false" redirectPort ="8443" debug ="0"
protocol ="AJP/1.3" />
< Engine name ="Catalina" defaultHost ="localhost" debug ="0" >
< Logger className ="org.apache.catalina.logger.FileLogger"
prefix ="catalina_log." suffix =".txt"
timestamp ="true" />
< Realm className ="org.apache.catalina.realm.UserDatabaseRealm"
debug ="0" resourceName ="UserDatabase" />
< Host name ="localhost" debug ="0" appBase ="webapps"
unpackWARs ="true" autoDeploy ="true"
xmlValidation ="false" xmlNamespaceAware ="false" >
< Context path ="/bookshop" docBase ="D:workspaceBookShopWebRoot" debug ="0" reloadable ="true" >
<!-- 配置JNDI数据源 -->
<!-- 数据源名称,拥有者,类型 -->
< Resource name ="jdbc/bookstore"
auth ="Container"
type ="javax.sql.DataSource" />
<!-- 设置数据源参数 name值必须与上相同 -->
< ResourceParams name ="jdbc/bookstore" >
<!-- 设置生成DataSource的factory 类 -->
< parameter >
< name > factory </ name >
< value > org.apache.commons.dbcp.BasicDataSourceFactory </ value >
</ parameter >
<!-- 设置连接池在活动状态下的数据库连接最大数目,
即同时连接到数据库的最大数目 -->
< parameter >
< name > maxActive </ name >
< value > 20 </ value >
</ parameter >
<!-- 设置连接池在空闲状态下的数据库连接最大数目
即表示在无人使用数据库的状态下保持的连接数目 -->
< parameter >
< name > maxIdle </ name >
< value > 20 </ value >
</ parameter >
<!-- 设置数据库连接在空闲状态下的最长时时间,
超过时间将抛出异常. -->
< parameter >
< name > maxWait </ name >
< value > -1 </ value >
</ parameter >
<!-- 设置数据库账号 -->
< parameter >
< name > username </ name >
< value > root </ value >
</ parameter >
<!-- 设置数据密码 -->
< parameter >
< name > password </ name >
< value > ****** </ value >
</ parameter >
<!-- 设置驱动程序 -->
< parameter >
< name > driverClassName </ name >
< value > com.mysql.jdbc.Driver </ value >
</ parameter >
<!-- 设置URL -->
< parameter >
< name > url </ name >
< value > jdbc:mysql://localhost:3306/bookstore </ value >
</ parameter >
</ ResourceParams >
</ Context >
</ Host >
</ Engine >
</ Service >
</ Server >