四天天前,每次尝试连接到我的数据库时,我都会收到此错误消息:
java.lang.NoClassDefFoundError:javax / persistence / spi / PersistenceProvider
我在一段时间后得到它,我正在处理我的应用程序的其他部分,不包括数据库访问,所以我真的不知道是什么原因造成了这个错误。
我在过去的四天里所做的就是尝试用Google搜索上面错误的不同组合......
毕竟谷歌搜索后,我发现,虽然错误使它看起来像我有一个丢失的jar,但事实并非如此。 (我javax.persistence.jar
中有javax.persistence-2.1.0-rc1.jar
和WebContent/WEB-INF/lib
,构建路径中包含Web App Libraries
。
我想到的唯一另一件事可能是我有一些版本矛盾,这就是为什么javax.persistence.spi.PersistenceProvider
无法构建,但我不知道如何检查它。
还有可能我错了,还有另一个问题......
我在这里添加/WebContent/WEB-INF/web.xml
和/src/main/resources/META-INF/persistence.xml
。如果还有其他需要,请告诉我,我会添加它。
我已经尝试解决这个问题已经4天了,我真的很沮丧,请帮忙!
web.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID"
version="3.1">
<display-name>InaalEchtok</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
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="model_persistence_unit">
<description>Persistence unit for the JPA tutorial of the Hibernate Getting Started Guide</description>
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<!-- <class></class> -->
<properties>
<!-- <property name="javax.persistence.jdbc.driver" value="org.h2.Driver" /> -->
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<!-- <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/fdb" /> -->
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/fdb?createDatabaseIfNotExist=true" />
<property name="javax.persistence.jdbc.user" value="****" />
<property name="javax.persistence.jdbc.password" value="*********" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<!-- <property name="hibernate.hbm2ddl.auto" value="update" /> -->
</properties>
</persistence-unit>
</persistence>
这些是我引用的库:
这是我的WEB-INF/lib
:
答案 0 :(得分:0)
我将项目转换为Maven项目并尝试运行它。
现在,错误消息更具体:No suitable driver found for
'jdbc:mysql://localhost:3306/mysql
。
所以我将mysql-connector-java-5.1.43-bin.jar
添加到我的WEB-INF/lib
文件夹中,现在它可以正常工作!!!