最近项目中发现解释XML的时候一直报空指针,很愁人,最后反编译看代码后终于找到问题的根源了:
borlandxml.jar里有个类:com.borland.xml.toolkit.XmlUtil对异常处理极为不友好,如下:
public static Element getDocRootElement(InputStream inputstream)
{
try
{
Element element = new Element(isSAXUsed() ? getSAX().build(inputstream).getRootElement() : getDOM().build(inputstream).getRootElement());
return element;
}
catch(JDOMException jdomexception)
{
Element element1 = null;
//这里把异常自己吃掉了。我在执行程序的时候,报:org.jdom.JDOMException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found错,
//明显是少包的问题,像这种异常,如果不反编译进来很难发现(如果使用POM.XML管理依赖也行)
return element1;
}
finally
{
…
}
}
///
加入xercesImpl.jar问题解决。