解決方法 設(shè)置兩個(gè)屬性(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");
再運(yùn)行就沒有錯(cuò)了.
最后發(fā)現(xiàn)原因是我使用MyEclipse創(chuàng)建項(xiàng)目時(shí)引用了J2EE 1.4 Library Container庫(JAVA構(gòu)建路徑-->庫)
使得sun.boot.class.path增加了myelipse下的jar文件,然后就把javax.xml.parsers.DocumentBuilderFactory變量的值設(shè)為org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
即還有第二種解決方法,就是去掉J2EE 1.4 Library Container庫,編譯,再運(yùn)行就沒有錯(cuò)了.
(JDK版本為1.5與6.0都測試通過).
請參考我的另外兩篇轉(zhuǎn)載的文章
DocumentBuilderFactory以及SAXParserFactory具體實(shí)現(xiàn)的查找步驟
http://lengweiping1983.javaeye.com/blog/248553
XML api折射出sun與IBM的恩仇
http://lengweiping1983.javaeye.com/blog/248560