解决方法 设置两个属性(javax.xml.parsers.DocumentBuilderFactory,javax.xml.parsers.SAXParserFactory)值如下:
System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
System.setProperty("javax.xml.parsers.SAXParserFactory",
"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl");
再运行就没有错了.
最后发现原因是我使用MyEclipse创建项目时引用了J2EE 1.4 Library Container库(JAVA构建路径-->库)
使得sun.boot.class.path增加了myelipse下的jar文件,然后就把javax.xml.parsers.DocumentBuilderFactory变量的值设为org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
即还有第二种解决方法,就是去掉J2EE 1.4 Library Container库,编译,再运行就没有错了.
(JDK版本为1.5与6.0都测试通过).
请参考我的另外两篇转载的文章
DocumentBuilderFactory以及SAXParserFactory具体实现的查找步骤
http://lengweiping1983.javaeye.com/blog/248553
XML api折射出sun与IBM的恩仇
http://lengweiping1983.javaeye.com/blog/248560