我的get应用程序无法连接到MySQL,并出现以下错误:
原因: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
现在,mysql连接器jar显然位于我的类路径中: mysql- connector -java-5.0.7-bin.jar,位于WEB-INF/lib目录中。
所以说它“找不到”是没有意义的。我猜它一定是静态初始化失败了。
有什么方法可以诊断这个问题吗?
发布于 2011-03-17 05:55:26
虽然除了堆栈跟踪之外,我没有想出任何好的诊断工具,但我确实意识到了发生了什么。当然,堆栈跟踪有这样的线索:
Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)DataSource是在web应用程序的context.xml文件中定义的,这意味着Tomcat使用父类加载器将驱动程序加载到web应用程序。该类加载器不能访问应用程序的类路径。
解决方案是将mysql jar放在Tomcat的共享库目录中。
一种不同的解决方案是将DataSource嵌入到应用程序中,而不是使用Tomcat的DataSource管理,从而允许股票Tomcat分发。
https://stackoverflow.com/questions/5332026
复制相似问题