本人初学Hibernate框架,网络上找的视频自学的,刚刚到第一次运行文件就出现这个错误,用的是eclipse,错误代码如下:
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.cfg.Configuration.<init>(Configuration.java:123)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:118)
at cn.ljs.text.HibernateTest.main(HibernateTest.java:13)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 5 more
文件代码如下:
package cn.ljs.text;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import cn.ljs.pojo.User;
public class HibernateTest {
public static void main(String[] args) {
Configuration cfg=new Configuration().configure();
ServiceRegistry registry=new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
SessionFactory factory=cfg.buildSessionFactory(registry);
Session session=factory.openSession();
User user=(User) session.get(User.class, 1);
System.out.println(user);
session.close();
factory.close();
}
}
很简单,就是测试一下布置有没有问题
以下是包图:
跟着教学视频走的,代码无误,视频里直接输出了数据库表中的信息,而我就报错...
已自行百度后作出以下修改:
1.将jar包修改到classpath目录下,
无效
2.修改classpath等配置,
path:D:\OracleWINDOWS.X64_180000_db_home\bin;%JAVA_HOME%\bin;%MAVEN_HOME%\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;D:\java\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\system32\wbem
我半路出家,在外面培训班学过4个月java基础,学的是SSM框架,现在想自己拓展一下学习Hibernate,哪知道一开始就遇到这问题 o(╥﹏╥)o,请高手指点!谢谢!