首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java-8中Xml解编组错误的替代解决方案?:“安全处理org.xml.sax.SAXNotRecognizedException”

Java-8中Xml解编组错误的替代解决方案?:“安全处理org.xml.sax.SAXNotRecognizedException”
EN

Stack Overflow用户
提问于 2016-02-29 03:49:33
回答 2查看 4.8K关注 0票数 3

注意:这个错误已经被讨论过了,并且已经提出了各种解决方案来消除与java-8的默认实现相冲突的jars。

我的问题是对这个问题的扩展.

为了完整起见,下面是我在使用java-8运行代码时所面临的堆栈跟踪:

代码语言:javascript
运行
复制
Feb 29, 2016 12:06:41 PM com.sun.xml.internal.bind.v2.util.XmlFactory createParserFactory
SEVERE: null
org.xml.sax.SAXNotRecognizedException: http://javax.xml.XMLConstants/feature/secure-processing
    at org.apache.xerces.parsers.AbstractSAXParser.setFeature(AbstractSAXParser.java:1487)
    at org.apache.xerces.jaxp.SAXParserImpl.setFeatures(SAXParserImpl.java:145)
    at org.apache.xerces.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:128)
    at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParserImpl(SAXParserFactoryImpl.java:112)
    at org.apache.xerces.jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:140)
    at com.sun.xml.internal.bind.v2.util.XmlFactory.createParserFactory(XmlFactory.java:121)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.getXMLReader(UnmarshallerImpl.java:139)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:276)

为了证明冲突的jar确实是问题所在(如前面共享的链接中所描述的),我将相关代码提取到不同的项目中,并成功地使用java-8 (即没有任何错误)以最少的jar数运行代码。到目前一切尚好。

,现在是查询:

在我的例子中,我的遗留项目使用了大约2-3个已知的冲突罐子,这些罐子由于各种原因而使用。然而,有一个新的模块,它使用注释驱动的jaxb进行oxm处理。

的问题是:我无法摆脱那些旧的、相互冲突的罐子,因为这使得10%的代码库无法编译。但是,同时,我也不希望摆脱新模块中的jaxb/oxm实现。

是否有一种方法可以让忽略旧jars,并在代码执行通过这个新模块时使用java-8附带的默认实现?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-29 20:44:16

另一种方法可以是使用StAX解析器将XMLStreamReader作为XMLStreamReader,然后让JAXB对其进行解密。

代码语言:javascript
运行
复制
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(reader);
unmarshaller.unmarshal(xmlStreamReader);
票数 10
EN

Stack Overflow用户

发布于 2021-04-23 13:21:37

同样的问题!解决方案对我也有效。注意:对于读者来说,我使用FileReader来读取一个已解组好的xml文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35691668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档