为了账号安全,请及时绑定邮箱和手机立即绑定

XMLEventReader 返回 STAX

XMLEventReader 返回 STAX

郎朗坤 2022-05-21 19:56:59
我正在使用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");



查看完整回答
反对 回复 2022-05-21
?
Qyouu

TA贡献1786条经验 获得超11个赞

它可能是由 Classpath 问题引起的。

可能是在您的类之前加载了另一个同名的类(它甚至可能在框架内或运行时环境中)阻止加载您引用的类,例如您的 stax 解析器的不同版本。

你有三个选择:

  • 尝试找出该环境中存在的 StAX 解析器版本,并针对它编译您的代码

  • 为您的库使用自己的类加载器/容器,这将保证加载正确的版本,

  • 尝试重新排序你的库首先出现的类路径 - 尽管它可能会破坏其他地方的系统,所以我真的不推荐。


查看完整回答
反对 回复 2022-05-21
  • 2 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号