我有一个使用jar文件(lib)访问数据库的web应用程序。 使用时,作为一个独立的应用程序执行正确,但web应用程序接收到错误的jar文件:java.sql.SQLException:找不到适合jdbc的驱动程序:mysql:// localhost:3306/sushi
[01-08-12 13:17:05] - 35266 WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 08001
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/myapp
我看过的答案类似的问题,但他们没有解决我的问题。
我正在使用Maven,在那里我添加了我正在使用的mysql版本5.1.21的依赖项。实际上,我已经为Lib和Webapp添加了它。
在此之前,我尝试在Eclipse中定义绑定到同一个文件的连接驱动程序定义,我已将它复制到eclipse项目中的WEB-INF/lib中用于我的Web应用程序,并具有与下面包含的相同参数persistence.xml文件
我没有使用任何java配置,因为我做了persistence.xml文件中的所有配置(我已经复制到两个META-INF文件夹,一个用于应用程序(lib)和。在一个web应用程序,我通过JPA使用Hibernate(4.1.2)
persistence.xml文件是这样的:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="myappPersistenceUnit"
transaction-type="RESOURCE_LOCAL">
<provider> org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/myapp" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="" />
</properties>
</persistence-unit>
</persistence>
,我在运行时,得到的是启动一个HTTP请求到应用程序的时候,而不是在web应用程序,在那里我还没有看到任何错误的初始化,但是出现这样的警告除外:
[01-08-12 13:16:39] - 8782 WARN org.hibernate.engine.jdbc.internal.JdbcServicesImpl - HHH000342: Could not obtain connection to query metadata : No suitable driver found for jdbc:mysql://localhost:3306/myapp
我想这是由于在init中没有必要从数据库中查找信息,并且在这两种情况下都不会引发异常,而是出现相同的根本原因。
编辑:我使用的是Tomcat 6.0
任何帮助将得到高度赞赏。
你有没有检查你的类路径? – Kayser 2012-08-01 11:38:43
请添加您使用的应用服务器 – mavroprovato 2012-08-01 11:40:10
@Kayser,类路径不应该由tomcat和maven管理? (我正在同时检查) – Picarus 2012-08-01 11:43:32