解決方法 設置兩個屬性(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