JDK9.0连接Hibernate5.0异常java.lang.ClassNotFoundException: javax.xml.bind.JAXBException解决办法

 在学习Hibernate例子的时候遇到了以下问题

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:86)
	at org.hibernate.cfg.Configuration.<init>(Configuration.java:123)
	at org.hibernate.cfg.Configuration.<init>(Configuration.java:118)
	at com.itheima.dao.HibernateDemo1.main(HibernateDemo1.java:44)
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:185)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
	... 5 more

经查明原因发现需要JAXB API,

原因是JDK9.0版本以前的版本java SE内默认包含JAXB这个包,但是JDK9.0中 Java SE内便不再包含这个包了,JAXB被划分为Java EE内的支持包了,因此导致这个异常。

方法一:

将JDK版本更换成8.0或7.0的

方法二:

若不想更换引入JAXB的jar包

javax.activation-1.2.0.jar 
http://search.maven.org/remotecontent?filepath=com/sun/activation/javax.activation/1.2.0/javax.activation-1.2.0.jar

jaxb-api-2.3.0.jar 
http://search.maven.org/remotecontent?filepath=javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar

jaxb-core-2.3.0.jar 
http://search.maven.org/remotecontent?filepath=com/sun/xml/bind/jaxb-core/2.3.0/jaxb-core-2.3.0.jar

jaxb-impl-2.3.0.jar 
http://search.maven.org/remotecontent?filepath=com/sun/xml/bind/jaxb-impl/2.3.0/jaxb-impl-2.3.0.jar

下载上面这些文件和复制他们到libs文件夹下, 
添加他们导入到Build Path中 
重新运行即可

以上两个方法都是我亲自测试可以用的,

并且有一点需要注意如果时连接的MySql8.0版本的需要注意连接数据库的URL的时区问题,不然也很有可能像我一样折腾大半天的

<!--连接数据库的URL代码-->
<property name="hibernate.connection.url" >jdbc:mysql:///test?serverTimezone=GMT%2B8</property>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值