Woodstox STAX和java STAX冲突

我现在面临Woodstox STAX和Java 1.6 STAX实现之间一个奇怪的运行时间相冲突。 由于我使用CXF,其拉动Woodstox瓶作为其依赖的一部分。 下面是我使用的示例代码。

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中的一部分。 但是不知道为什么它不是失败了。

任何指针将不胜感激。

--------------解决方案-------------

那么,你有一个从粗浅的看法两种可能的选择:

  1. 使用依赖排除关闭Woodstox。 CXF可以与内置的STAX - 给予或采取的各种错误中内置的Stax。
  2. 使用Woodstox自己。

然而,这里的特定错误是有点不太可能。 我主要推荐张贴这对CXF的用户列表,并告诉我们有什么版本的CXF的您正在使用。

纵观例外,它说基本上是一个人不能投的StartElement到的EndElement; 它似乎并不像StAX实现,而是一个错误的地方之间的不兼容。 这Woodstox的版本是这样的?

分类:java的 时间:2012-12-25 人气:0
本文关键词: Java中,STAX,woodstox
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.323 (s). 9 q(s)