今天配置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://blog.csdn.net/hadues/article/details/79188793