以下代码在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)
我知道,有一个问题,针对类似的问题,但退一步Java
7的是不是一个解决方案给我。
我试图添加以下Maven依赖项
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxp-api</artifactId>
<version>1.4</version>
</dependency>
但这并没有改变结果,因此我将其删除(感谢@BlaiseDoughan提供的信息,该信息已包含在Java 6中)
欢迎任何提示,非常感谢。
这是一个依赖问题。
这是我解决问题的方式:
将依赖项复制到项目pom.xml中,现在程序应该崩溃(如上所述)
不,您可以在喜欢的方法(好的猜测,Bisection,1×1 ..)之后删除依赖项以找到“不良”依赖项。也许有人有更好(更专业)的方法,这个方法对我有用。
现在您可以决定要做什么,也许有新版本可用,在我们的情况下,这是我自己的大学包,其中包括我可以排除的大学包。
public class Test {
public Test() {
}
public static void main(String[] args) {
try {
StringReader reader = new StringReader("<xml></xml>");
JAXBContext jc = JAXBContext.newInstance(TestXML.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
TestXML testXMLs = (TestXML) unmarshaller.unmarshal(reader);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
和testXML类
@XmlRootElement(name="rss")
@XmlAccessorType(XmlAccessType.FIELD)
public class TestXML {
public TestXML() {
}
@XmlElementWrapper(name="channel")
@XmlElement(name="item")
private int i ;
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
}
顺便说一句:就我而言,这是
<dependency>
<groupId>jcs</groupId>
<artifactId>jcs</artifactId>
<version>1.3</version>
</dependency>
希望能有所帮助。
问题内容: 接收Xml并尝试解析它时,我遇到此异常。作为独立应用程序运行时,对此负责的代码已经过测试。但是我现在将其集成到Tomcat中。 堆栈跟踪为: 挖掘发现我发现了这一点,所以也许解决方案是更改Tomcat设置的选项。 所以问题是: 问题的根源是什么? 最好的解决方法? 更改Tomcat选项的好方法吗?这是怎么做的? 更新资料 当使用Java 8运行它时,会发生这种情况,还原到Java 7可
问题内容: 在 Java 8 In Action 一书的第7.1.1节中,作者指出,通过添加功能,流可以从并行处理中受益。他们提供了一个简单的方法来说明这一点。我很好奇它的工作原理,所以我执行了以下代码: 令我惊讶的是,我收到此错误: 我在Windows 7 SP1上使用四核处理器运行Java 1.8.0_45。这是怎么回事? 问题答案: 在这里,您可以创建无限流并在之后对其进行限制。关于并行处理
问题内容: 使用node / express-我想从请求标头中获取一些JSON,但我想安全地做到这一点。 如果由于某种原因它不是有效的JSON,那很好,它可以返回false或其他任何值,它将拒绝请求并继续执行。问题是,如果它不是有效的JSON,则会引发语法错误。通常,我希望语法错误能够爆发,但在这种情况下不希望。 我是否会刮取堆栈并检查来自该特定模块的错误解析调用,如果是这种情况,它将忽略它?这似
问题内容: 每当我编写包含ArrayUtil的代码时,都会导致意外错误: 我使用Eclipse编写代码,“ ArrayUtil”下始终有一个红色下划线。我究竟做错了什么? 问题答案: 您的ArrayUtil属于哪个软件包?没有这些信息,没人能确定地回答。 你到这里了吗?如果是,则您的签名看起来正确。您可能尚未导入它,或者该类不在您的CLASSPATH中。Eclipse告诉您更正其中一项。
问题内容: 我正在尝试使用以下命令将标准PKCS#12(.p12)密钥库转换为Java JKS密钥库: 它失败了: 您有解决该问题的想法吗? 问题答案: pkcs12密钥库确实已损坏。
问题内容: 我正在使用ResponseEntityExceptionHandler全局处理错误,并且几乎可以正常工作,只是我想用spring处理错误的请求。通过任何逻辑,handleNoSuchRequestHandlingMethod都应处理此问题,但是总是要进行处理 HTTP Status 404 - type Status report message description The req