加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

错误解组xml在java-8“安全处理org.xml.sax.SAXNotRecognizedExc

发布时间:2020-12-16 08:02:06 所属栏目:百科 来源:网络整理
导读:以下代码在Java 7中运行正常 import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax.xml.bind.Unmarshaller;String xmlString = 'xml ..... ';StringReader reader = new StringReader(xmlString);JAXBContext jc = JAXBCont
以下代码在Java 7中运行正常
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;

String xmlString = '<xml ..... ';

StringReader reader = new StringReader(xmlString);

JAXBContext jc = JAXBContext.newInstance(MyClass.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
MyClass myClass = (MyClass) unmarshaller.unmarshal(reader);
....

现在我们必须升级到Java 8,现在我在执行代码时得到这个异常:

Sep 03,2014 1:42:47 PM com.sun.xml.internal.bind.v2.util.XmlFactory createParserFactory
SCHWERWIEGEND: null
org.xml.sax.SAXNotRecognizedException: Feature: http://javax.xml.XMLConstants/feature/secure-processing
    at org.apache.xerces.jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:100)
    at com.sun.xml.internal.bind.v2.util.XmlFactory.createParserFactory(XmlFactory.java:114)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.getXMLReader(UnmarshallerImpl.java:139)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:214)

我知道有一个question针对类似的问题,但回到java 7不是我的解决方案。

我试图添加以下maven依赖关系

<dependency>
    <groupId>javax.xml</groupId>
    <artifactId>jaxp-api</artifactId>
    <version>1.4</version>
</dependency>

但是没有改变结果,所以我删除它(感谢@BlaiseDoughan的信息,这被包括在Java 6中)

欢迎任何提示,非常感谢。

我们有一个类似的问题 – 我们的开发人员发现了一个适用于我们的解决方案。

我们将这个依赖关系添加到我们的一些pom.xml文件中

对于那些关心的人来说,Sonar的单元测试显然是失败的,因为Cobatura默认情况下会拉出旧版本的xerces。它引入的版本与Java 8中的JAX-B不兼容。该库不用于生产代码 – 只是Cobatura。因此,修复程序是在更新版本的xerces(2.11.0)中添加测试依赖关系。这通过将依赖关系添加到pom文件来完成:

<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.11.0</version>
    <scope>test</scope>
</dependency>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读