我正面臨Woodstox STAX和java 1.6 STAX實現之間的奇怪運行時衝突。由於我使用的是CXF,因此它將拉伸Woodstox罐作爲其依賴項的一部分。這是我使用的示例代碼。Woodstox stax和java stax衝突
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.events.Attribute;
import javax.xml.stream.events.EndElement;
import javax.xml.stream.events.StartElement;
import javax.xml.stream.events.XMLEvent;
XMLInputFactory factory = (XMLInputFactory)XMLInputFactory.newInstance();
XMLEventReader reader =
factory.createXMLEventReader(new StringReader(xml));
while (reader.hasNext()){
XMLEvent event = reader.nextEvent();
switch (event.getEventType()){
case XMLEvent.START_ELEMENT :
StartElement se = event.asStartElement();
...........
...........
case XMLEvent.END_ELEMENT :
EndElement endElement = event.asEndElement();
if (event.asEndElement().getName().getLocalPart()==("document"))
// do something
在運行期間,我收到以下異常。
java.lang.Exception: java.lang.ClassCastException: com.ctc.wstx.evt.CompactStartElement cannot be cast to javax.xml.stream.events.EndElement
當它到達線
EndElement endElement = event.asEndElement();
我有點不解,爲什麼它在這一點上造成儘管它沒有在 StartElement se = event.asStartElement();
故障調試時,我發現,事件對象是com.ctc.wstx.evt包的一部分,而不是javax.xml.stream。但不知道爲什麼它沒有失敗。
任何指針將不勝感激。
你解決dis問題嗎? – 2017-05-26 19:08:18