0

行ExamXML.compareXMLString(s1、s2);の例外

フラグメントコードは

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

どうすればこれを修正できますか?

4

1 に答える 1

4

この問題の解決策があります。

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

ありがとうございました!

于 2012-04-06T10:22:09.513 に答える