今天搞tomcat5.528配置数据源连接池,在tomcat admin的界面上配置好以后,写了一个serverlet测试,结果报了一个Cannot create JDBC driver of class '' for connect URL 'null'的错,
org.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:1150)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at test.TestServerlet.service(TestServerlet.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
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:1143)
... 17 more
,在网上一搜,都说5.5配都出错,有的说换了版本就没出现这个错了,我觉肯定是哪里配置不对,并不是版本不支持,java.sql.SQLException: No suitable driver
看了这段还错以为是mysql的驱动版本不对,又换了一个还是一样,后来在网上找到一个人说"然后在WebApp的Context.xml中加入"这里配置,我查找了一下context.xml这个文件打开一看
<Resource
auth="Container"
description="dmst"
name="jdbc/dmst"
type="javax.sql.DataSource"
driverClassName=""
/>
直觉告诉我问题就在这里了driverClassName=""这里不就是"",错误不就是说Cannot create JDBC driver of class '' for connect URL 'null';driverclass为空,url为null;于是我就把driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/qxxt?useUnicode=true&characterEncoding=GBK"这两句加上去,重启,哈哈
访问serverlet,哈哈,那个错终于没有了,但是还是有错是说阻止我连接数据库,一看就知道是用户名没有,于是又把用户名密码加上去,一切oK
好吧我把整个代码发出来吧
%tomcat_home%/conf/server.xml
关键的发出来,其他就不发了吧.
webapp项目的web.xml
这里我的测试serverlet是TestServerlet
Testserverlet.java
关键的地方:
webapps/项目名/META-INF/context.xml
OK测试去,一切都OK了