将jpa与hibernate一起使用时,获取hibernate.properties未找到和java.lang.NoClassDefFoundError
我正在尝试使用maven创建一个基本的快速启动项目来理解jpa。我使用的是Hibernate版本5.2.8.Final。运行时,显示hibernate.properties not found并给出NoClassDefFoundError。自从我使用Oracle10g以来,我的类路径中也有ojdbc14 jar文件。我不明白为什么我会出现这个错误…任何帮助都将不胜感激…谢谢将jpa与hibernate一起使用时,获取hibernate.properties未找到和java.lang.NoClassDefFoundError,java,hibernate,jpa,oracle10g,persistence.xml,Java,Hibernate,Jpa,Oracle10g,Persistence.xml,我正在尝试使用maven创建一个基本的快速启动项目来理解jpa。我使用的是Hibernate版本5.2.8.Final。运行时,显示hibernate.properties not found并给出NoClassDefFoundError。自从我使用Oracle10g以来,我的类路径中也有ojdbc14 jar文件。我不明白为什么我会出现这个错误…任何帮助都将不胜感激…谢谢 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>strange</groupId>
<artifactId>JPA</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>JPA</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.8.Final</version>
</dependency>
</dependencies>
</project>
2020年4月30日下午4:10:32 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
信息:HH000204:正在处理PersistenceUnitInfo[
姓名:ab
...]
2020年4月30日下午4:10:33 org.hibernate.Version日志版本
信息:hh000412:Hibernate核心{5.2.8.Final}
2020年4月30日下午4:10:33 org.hibernate.cfg.Environment
信息:HH000206:找不到hibernate.properties
线程“main”java.lang.NoClassDefFoundError中的异常:javax/xml/bind/jaxBeException
位于org.hibernate.boot.spi.XmlMappingBinderAccess。(XmlMappingBinderAccess.java:43)
位于org.hibernate.boot.MetadataSources(MetadataSources.java:87)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl。(EntityManagerFactoryBuilderImpl.java:208)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl。(EntityManagerFactoryBuilderImpl.java:170)
位于org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76)
位于org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:181)
在org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:129)
在org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71)
在org.hibernate.jpa.HibernatePersistenceProvider.createEntityManager工厂(HibernatePersistenceProvider.java:52)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:55)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:39)
在奇怪的.JPA.App.main(App.java:16)
原因:java.lang.ClassNotFoundException:javax.xml.bind.jaxBeException
位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
... 还有12个
来自Java 9及以上版本的JAXB API已从标准Java SE中删除,因此您只需添加
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
javax.xml.bind
NoClassDefFoundError属于哪个类?很抱歉,起初我忘了在控制台中包含错误消息。现在我已经包括了这一点。请检查您使用的java版本是否正确?你可能想检查这个@StarkZ请接受我的答案,它帮助社区中的其他人找到答案谢谢@sreenath,它对我有用。
package strange.JPA;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class test {
@Id
private int test_id;
private String name;
public int getTest_id() {
return test_id;
}
public void setTest_id(int test_id) {
this.test_id = test_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "test [test_id=" + test_id + ", name=" + name + "]";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="ab">
<properties>
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521/XE"/>
<property name="javax.persistence.jdbc.user" value="system"/>
<property name="javax.persistence.jdbc.password" value="pegasus"/>
</properties>
</persistence-unit>
</persistence>
Apr 30, 2020 4:10:32 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
name: ab
...]
Apr 30, 2020 4:10:33 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.2.8.Final}
Apr 30, 2020 4:10:33 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43)
at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:87)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:208)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:170)
at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:181)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:129)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:52)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at strange.JPA.App.main(App.java:16)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
... 12 more
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>