问答详情
源自:-

一样的程序,用了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://img.mukewang.com/5a6aa507000136f505150239.jpg

提问者:开始学会努力的咸鱼 2018-01-26 11:49

个回答

  • 春风又绿江南岸_
    2020-06-10 20:50:31

    一、如果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,不行再试试更低版本的

  • 水月残阳下的梦7
    2018-07-31 13:53:06

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