今天遇到同样的问题。经检查发现,在JDK1.5.22中的rt.jar中包含了org.w3c.dom.Element接口,在Tomcat下的 /common/endorsed下面的xml-api.jar中包含了org.w3c.dom.Element接口,同时在我的web项目中还包含了该接口。
该Element接口继承了Node接口,而我们需要的setUserData(Ljava/lang/String;Ljava /lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object方法正是在之个Node接口中定义的。由于在项目运行时Tomcat使用的是endorsed下面的那个包,而该包中的Node接口并没有此方法,因而报错。
解决方法:更新JDK;更新Tomcat下的xercesImpl.jar、xml-api.jar;或者更新项目下的xercesImpl.jar、xml-api.jar。选那个更新,这个看个人而定了。
该Element接口继承了Node接口,而我们需要的setUserData(Ljava/lang/String;Ljava /lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object方法正是在之个Node接口中定义的。由于在项目运行时Tomcat使用的是endorsed下面的那个包,而该包中的Node接口并没有此方法,因而报错。
解决方法:更新JDK;更新Tomcat下的xercesImpl.jar、xml-api.jar;或者更新项目下的xercesImpl.jar、xml-api.jar。选那个更新,这个看个人而定了。
解决XML-API冲突
本文介绍了一个关于XML-API接口冲突的问题及解决方案。问题出现在Tomcat环境下,由于不同版本的JDK和XML-API包导致Element接口继承的Node接口方法不一致,从而引发错误。文章提供了三种解决方法:更新JDK、更新Tomcat下的相关jar包或更新项目依赖。
282

被折叠的 条评论
为什么被折叠?



