我正在使用XMLEventReader來解析大的 xml 文件,它在一個項目中運行良好,但是當我在另一個項目中導入具有相同導入的相同類時,它不能很好地解析 xml,它給出了STAX Event.下面是我的代碼: XMLInputFactory factory = XMLInputFactory.newInstance(); XMLEventReader eventReader = factory.createXMLEventReader(new FileReader(exportedFilePath));我調試并檢查了eventReader,并且在正在工作的項目中是f in property,在不工作的項目中是m。我無法捕捉到異常,因為它是相同的類和相同的導入..以下是進口:import javax.xml.stream.XMLEventReader;import javax.xml.stream.XMLInputFactory;import javax.xml.stream.XMLStreamConstants;import javax.xml.stream.XMLStreamException;import javax.xml.stream.events.Attribute;import javax.xml.stream.events.Characters;import javax.xml.stream.events.EndElement;import javax.xml.stream.events.Namespace;import javax.xml.stream.events.StartElement;import javax.xml.stream.events.XMLEvent;
2 回答

森林海
TA貢獻2011條經驗 獲得超2個贊
這應該有助于:
System.setProperty("javax.xml.stream.XMLInputFactory", "com.sun.xml.internal.stream.XMLInputFactoryImpl");

Qyouu
TA貢獻1786條經驗 獲得超11個贊
它可能是由 Classpath 問題引起的。
可能是在您的類之前加載了另一個同名的類(它甚至可能在框架內或運行時環境中)阻止加載您引用的類,例如您的 stax 解析器的不同版本。
你有三個選擇:
嘗試找出該環境中存在的 StAX 解析器版本,并針對它編譯您的代碼
為您的庫使用自己的類加載器/容器,這將保證加載正確的版本,
嘗試重新排序你的庫首先出現的類路徑 - 盡管它可能會破壞其他地方的系統,所以我真的不推薦。
添加回答
舉報
0/150
提交
取消