2009-11-14 115 views
4

这里有一个类似的问题,但关于类路径。 ClassNotFoundException com.mysql.jdbc.DriverTomcat 6找不到mysql驱动程序

我已经有一切工作很好,直到前几天。突然我的小应用程序找不到mysql驱动程序。我不明白为什么(我真的已经检查了所有内容)

我在WEB-INF/lib中获得了驱动程序jar,但tomcat似乎无法找到它。

任何人有任何想法为什么? 我使用Ubuntu与Synaptics的packadge经理

那是给错误安装了Tomcat 6和mysql是:

ClassNotFoundException: com.mysql.jdbc.Driver 

我甚至更改的权限为777,看它是否可能但它不是:(

+1

消息“com.mysql.jdbc:Driver”中的冒号并不是我期望看到的。这是真的,还是打字错误? – 2009-11-14 03:29:11

+1

输入错误,我是从另一台电脑手动复制这个。 – fmsf 2009-11-14 03:40:25

+0

你如何创建一个数据源?从应用程序中还是从JNDI绑定连接池(DBCP)? – cherouvim 2009-11-14 09:14:11

回答

7

如果您创建了需要此驱动程序的数据源,那么它应直接放置在管理数据源的容器的类路径中。在这种情况下,它是管理数据源的Tomcat。因此,将驱动程序放入Tomcat/lib中即可。

除此之外,你告诉你使用的是Ubuntu。它默认使用GNU JDK。我只强烈建议您确保您摆脱它并安装Sun JDK。 GNU JDK杂乱无章,可能会导致第一眼看不到的问题。希望你考虑到这一点。

+0

我改了它,现在它在web-inf/lib中找到驱动程序 – fmsf 2009-11-14 19:04:48

+0

CATALINA_HOME比“Tomcat”更合适,以避免与CATALINA_BASE混淆。此外,提到GNU JDK的错误虽然在写作时仍然有效,但不再适用(虽然Oracle JDK与OpenJDK存在争议,但这是另一个话题)。 – youri 2013-08-16 12:26:22

5

尝试将MySQL JDBC驱动程序放入$CATALINA_HOME/lib并重新启动Web服务器。另外,请确保tomcat用户(或任何运行tomcat的用户)有权读取它。

0

在tomcat lib中添加jar文件。我认为你可以从应用程序的WEB-INF/lib中删除这个jar文件,因为那样对于一个类可能有两个定义。所以只需在tomcat lib中复制jar文件即可。希望这可以帮助。 :)