背景:
今日在使用eclipse,进行Maven Bulid调试的时候,出现以下错误:org.apache.ibatis.builder.BuilderException: Error evaluating XPath. Cause: java.lang.ClassCastException...日志如下:
2016-06-16 12:23:52,055 [main] ERROR MapperFactoryBean:80 - Error while adding the mapper 'interface com.huawei.it.hae.plus.hdsf.registry.dao.IServiceHistoryProcDao' to configuration.
org.apache.ibatis.builder.BuilderException: Error evaluating XPath. Cause: java.lang.ClassCastException: com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault cannot be cast to com.sun.org.apache.xml.internal.dtm.DTMManager
at org.apache.ibatis.parsing.XPathParser.evaluate(XPathParser.java:221) ~[mybatis-3.1.0.jar:3.1.0]
at org.apache.ibatis.parsing.XPathParser.evalNode(XPathParser.java:210) ~[mybatis-3.1.0.jar:3.1.0]
at org.apache.ibatis.parsing.XPathParser.evalNode(XPathParser.java:206) ~[mybatis-3.1.0.jar:3.1.0]
...
具体原因分析:
经求助大神,是由于maven包有重复依赖。(笔者暂无详细分析)
解决方法:
在Java项目中,找到以下jar包。然后,将com\sun\org\apache\xml\internal\dtm路径中的dtm文件全部删除,即可解决问题。
- db2jcc4-5.4.8.jar
- db2jcc_license_cisuz-5.4.8.jar
- simsun-font-5.4.8.jar
- sunjce-provider-5.4.8.jar
- xerces-5.4.8.jar
以上经历,供参考:-)