小编mmx*_*x73的帖子

在java-8中解组xml时出错"安全处理org.xml.sax.SAXNotRecognizedException导致java.lang.IllegalStateException"

以下代码在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);
....
Run Code Online (Sandbox Code Playgroud)

现在我们不得不升级到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)
Run Code Online (Sandbox Code Playgroud)

我知道,有一个问题,针对类似的问题,但退一步Java 7的是不是一个解决方案给我.

我试图添加以下maven依赖项

<dependency>
    <groupId>javax.xml</groupId>
    <artifactId>jaxp-api</artifactId>
    <version>1.4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

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

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

java jaxb xml-parsing java-8

30
推荐指数
6
解决办法
6万
查看次数

MYSQL/MariaDB - TokuDB ......设备上没有剩余空间

虽然硬盘驱动器上还有一些空间,但是使用tokuDB存储引擎的表上的任何插入都会失败并显示错误:

错误代码:1021.磁盘已满(); 等待某人释放一些空间...(错误:189"磁盘已满")

其他存储引擎(例如innodb)上的插入仍然有效.

mysql mariadb tokudb

2
推荐指数
1
解决办法
1313
查看次数

标签 统计

java ×1

java-8 ×1

jaxb ×1

mariadb ×1

mysql ×1

tokudb ×1

xml-parsing ×1