在Eclipse中运行单元测试而不是在Cygwin中运行时发现java AbstractMethodError
以下是stacktrace: JAVAlang.AbstractMethodError:
org.apache.xerces.dom.DeferredDocumentImpl.getXmlStandalone()Z
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.setDocumentInfo(DOM2TO.java:373)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:127)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:94)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:661)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:707)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
...
我在Eclipse中运行单元测试时遇到了这个问题,但是如果我在Cygwin中使用Maven运行它,一切都会正常工作。我在以前的帖子中搜索过,我知道"this error can only occur at run time if the definition of some class has incompatibly changed since the currently executing method was last compiled."
我的问题是,不同的结果会表明什么?Eclipse项目设置中使用了错误的jar(包)?我在Cygwin中使用JDK1.6.027,Eclipse项目具有相同的设置。谢谢
# 1 楼答案
这是因为类路径中没有
xercesImpl.jar
如果正在使用
xerces.jar
,请将其从类路径中删除,并在类路径中添加xercesimpl.jar