使用PowerMock导致的ClassCastException

使用PowerMock时遇到一些莫名其妙的问题,比如:
java.lang.ClassCastException: com.sun.org.apache.xerces.internal.parsers.SAXParser cannot be cast to org.xml.sax.XMLReader
事实上SAXParser实现了XMLReader接口,所以上面这个Exception说明他们被不同的classloader加载了,比如PowerMock的MockClassloader.
其他错,比如Logging相关的类被加载两次,也是同样的问题。
解决办法:
在test case类前面加下面的注解。
@PowerMockIgnore ({"org.apache.log4j.*", "org.apache.commons.logging.*", "org.xml.sax.*"})

猜你喜欢

转载自fanrey.iteye.com/blog/1673633