2012-04-06 42 views
0

行中的異常ExamXML.compareXMLString(s1,s2);比較XML文件時Java代碼中的異常

片段代碼

static public void main(String[] argv) throws IOException { 

    String s1 = readFile("src/main/resources/file1.xml"); 
    String s2 = readFile("src/main/resources/file2.xml"); 

    String s = ExamXML.compareXMLString(s1, s2); 
    System.out.println(s); 

} 

運行結果是:

java.lang.ClassCastException: org.apache.xerces.parsers.AbstractSAXParser$LocatorProxy cannot be cast to org.xml.sax.ext.Locator2 
    at com.a7soft.examxml.ExamXMLHandler.setDocumentLocator(ExamXMLHandler.java:215) 
    at org.apache.xerces.parsers.AbstractSAXParser.startDocument(Unknown Source) 
    at org.apache.xerces.impl.xs.XMLSchemaValidator.startDocument(Unknown Source) 
    at org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source) 
    at org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source) 
    at org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) 
    at com.a7soft.examxml.ExamXMLHandler.loadXML(ExamXMLHandler.java:111) 
    at com.a7soft.examxml.ExamXML.loadXML(ExamXML.java:246) 
    at com.a7soft.examxml.ExamXML.parseXMLTags(ExamXML.java:262) 
    at com.a7soft.examxml.ExamXML.compareXMLString(ExamXML.java:281) 
    at com.happyelements.odin.monster.Main.main(Main.java:55) 

null 

我該如何解決這個問題?

+0

請發佈Main.java代碼,因爲這是錯誤似乎已經發生的地方 – 2012-04-06 10:17:58

+0

我想錯誤在這裏:ExamXMLHandler.java:215 – jordeu 2012-04-06 10:19:55

回答

4

我有這個問題的解決方案。

System.setProperty("javax.xml.parsers.SAXParserFactory", 
     "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"); 

謝謝!

+0

非常感謝。有用。 – 2012-04-06 10:24:58

+1

@Andrew Lapick如果這可以解決您的問題,您是否可以贊成並接受答案? – 2012-04-06 10:35:02