【发布时间】:2012-07-30 07:09:31
【问题描述】:
我有一个使用 jar 文件 (lib) 来访问数据库的 Web 应用程序。 jar 文件作为独立应用程序使用时正确执行,但 webapp 收到错误:
[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 中定义一个连接到同一个文件的连接驱动程序定义,该文件已复制到我的 Webapp 的 eclipse 项目中的 WEB-INF/lib 中,并且具有我在下面包含的相同参数persistence.xml 文件
我没有使用任何 java 进行配置,因为我在 persistence.xml 文件中进行了所有配置(我已将其复制到两个 META-INF 文件夹,一个用于应用程序(lib),一个用于 webapp。我正在通过 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 警告 org.hibernate.engine.jdbc.internal.JdbcServicesImpl - HHH000342: 无法获得与查询元数据的连接:没有合适的驱动程序 找到 jdbc:mysql://localhost:3306/myapp
我猜这是由于在初始化时不需要从数据库中查找的信息,并且在两种情况下都没有抛出异常但根本原因相同。
编辑:我使用的是 Tomcat 6.0
我们将不胜感激。
【问题讨论】:
-
你检查你的类路径了吗?
-
请添加您使用的应用服务器
-
@Kayser ,类路径不应该由tomcat和maven管理吗? (我正在检查)
-
@Kayser,我通过 Apache-Tomcat v6.0 将 mysql-connector 包含在 Java Build Path->Libraries 中,因为我已将文件复制到 TOMCAT_HOME\lib。这是你指的还是我应该设置一个系统变量来指向 TOMCAT_HOME\lib?
标签: java mysql eclipse hibernate maven