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

今天配置hibernate环境时遇到一个问题

ognl.MethodFailedException: Method "login" failed for object web.UserAction@4453a1b4 [java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException]

百度了下,看了广大网友的答案,了解了其中的原由,做一个简单的记录,方便自己也方便他人。

产生这个问题的原因主要是使用JDK 9.0 及其以上,JDK9做了巨大改变(推荐使用JDK8,至于原因大家可以百度Oracle发布JDK的规则,现在公司做开发也基本都是使用的JDK8,很少会使用9及以上)。

可以下载javax.activation-1.2.0.jar,jaxb-api-2.3.0.jar,jaxb-core-2.3.0.jar,jaxb-impl-2.3.0.jar四个jar包

JAXB API是java EE的API,而java EE的API不再包含对java SE 9的模块中,因此JAXB APIs不再包含在java SE 9的默认类路径中,因此引发了以上报错

本人推荐的方法是导入4个jar包就能完美解决。

以示对作者的尊重,大家可以看看原帖:

https://stackoverflow.com/questions/43574426/how-to-resolve-java-lang-noclassdeffounderror-javax-xml-bind-jaxbexception-in-j

网友翻译的:

https://blog.csdn.net/hadues/article/details/79188793

 

你可能感兴趣的:(技术)