为了账号安全,请及时绑定邮箱和手机立即绑定

一样的程序,用了5.2版本的hibernate的jar包就出错

一样的程序,老程序用老师给的jar包跑没出错,下了5.2版本的hibernate的jar包,想试试新版本创建SessionFactory的方式就一直报错。

老程序:

Configuration c = new Configuration().configure();

ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()

.applySettings(c.getProperties()).buildServiceRegistry();

SessionFactory sf = c.buildSessionFactory(serviceRegistry);

Session s = sf.openSession();

Transaction transaction = s.beginTransaction();

新程序:

Configuration c = new Configuration().configure();

ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(c.getProperties()).build();

SessionFactory sf = c.buildSessionFactory(serviceRegistry);

Session s = sf.openSession();

Transaction transaction = s.beginTransaction();

错误信息:

java.lang.NoClassDefFoundError:javax/xml/bind/JAXBException

去网上查说是缺这个jar包,下载导入后还是会报这个错

org.hibernate.internal.util.config.ConfigurationException:Unable to perform unmarshalling at line number 0 and column 0 in 

RESOURCE hibernate.cfg.xml. Message:null

同时控制台会输出:

1月 26, 2018 11:44:32 上午 org.hibernate.Version logVersion

INFO: HHH000412: Hibernate Core {5.2.12.Final}

1月 26, 2018 11:44:32 上午 org.hibernate.cfg.Environment <clinit>

INFO: HHH000206: hibernate.properties not found

使用的jar包如下,jaxb-api-2.2.12.jar是后面添加进去的那个jar包

http://img1.sycdn.imooc.com//5a6aa507000136f505150239.jpg

正在回答

2 回答

一、如果hibernate.cfg.xml配置文件没有错的话(1、包括一些转义字符有没有区分,主要在数据库连接那一项的jdbc:mysql://localhost:3306/hibernate_day01?useSSL=false&amp;serverTimezone=UTC其中'&'要写成‘&amp’;2、右键,选择preferences查看文本编码格式是不是utf-8;)。

二、检查完hibernate.cfg.xml文件没问题还无法解决那就很大原因是jdk版本问题,先试试用jdk1.8,不行再试试更低版本的

0 回复 有任何疑惑可以回复我~

老师用的包库太老了,不建议使用

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

一样的程序,用了5.2版本的hibernate的jar包就出错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信