java – XStream fromXML()异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – XStream fromXML()异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2506字,纯文字阅读大概需要4分钟。
内容图文
![java – XStream fromXML()异常](/upload/InfoBanner/zyjiaocheng/747/026d0be0800a408f915e04bad534df30.jpg)
我试图使用XStream包在Java中反序列化字符串. XStream包可以很好地序列化我的类.我从服务器获取XML(不能更改XML的格式)并尝试将其节点信息保存到某个类中的相应变量.我的函数位于底部,我试图为XStream对象注册一个新的转换器(认为这是因为一个变量是一个字节数组),但仍然没有运气.谁能解释这些例外?我是否需要注册“MyClass”并为XStream编写自己的转换器来处理反序列化我的类?提前致谢.
如果将字符串或StringReader对象作为输入传递给fromXML(),则异常:
[Fatal Error] :1:1: Content is not allowed in prolog.
com.thoughtworks.xstream.io.StreamException: : Content is not allowed in prolog.
at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:86)
at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:66)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:853)
如果将ByteArrayInputStream用作fromXML()的输入,则异常:
com.thoughtworks.xstream.converters.ConversionException: ByteSize : ByteSize : ByteSize : ByteSize
—- Debugging information —-
message : ByteSize : ByteSize
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : ByteSize : ByteSize
class : MyClass
required-type : MyClass
path : /MyClass/ByteSize
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:89)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:137)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:923)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:909)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:861)
static Object fromXmlString(String xml)
{
XStream xStream = new XStream(new DomDriver());
xStream.registerConverter(new EncodedByteArrayConverter());
//tried all 3 below
//return xStream.fromXML(new StringReader(xml));
//return xStream.fromXML(new ByteArrayInputStream(xml.getBytes()));
return xStream.fromXML(xml);
}
解决方法:
看看这个问题:content not allowed in prolog exception.
“prolog中不允许的内容”通常表示在文件中的<?xml标题(“prolog”)之前有一些内容.这是不允许的. 因此,请检查以确保字符串中<?xml之前没有字符,并且您没有任何BOM问题.
内容总结
以上是互联网集市为您收集整理的java – XStream fromXML()异常全部内容,希望文章能够帮你解决java – XStream fromXML()异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。