昨天从官网上下了个Xstream,运行了一个简单的测试用例
public void testConvertsPropertiesObjectToShortKeyValueElements() { Properties in = new Properties(); in.setProperty("hello", "world"); in.setProperty("foo", "cheese"); String expectedXML = "" + "<properties>\n" + " <property name=\"hello\" value=\"world\"/>\n" + " <property name=\"foo\" value=\"cheese\"/>\n" + "</properties>"; XStream xstream = new XStream(); String actualXML = xstream.toXML(in); assertEquals(expectedXML, actualXML); Properties expectedOut = new Properties(); expectedOut.setProperty("hello", "world"); expectedOut.setProperty("foo", "cheese"); Properties actualOut = (Properties) xstream.fromXML(actualXML); assertEquals(in, actualOut); assertEquals(in.toString(), actualOut.toString()); }
一运行,就报错了,错误信息如下:
com.thoughtworks.xstream.io.StreamException: Cannot create XmlPullParser at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:56) at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1011) at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1002) at com.xmljson.test.PropertiesConverterTest.testConvertsPropertiesObjectToShortKeyValueElements(PropertiesConverterTest.java:42) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at junit.framework.TestCase.runTest(TestCase.java:176) at junit.framework.TestCase.runBare(TestCase.java:141) at junit.framework.TestResult$1.protect(TestResult.java:122) at junit.framework.TestResult.runProtected(TestResult.java:142) at junit.framework.TestResult.run(TestResult.java:125) at junit.framework.TestCase.run(TestCase.java:129) at junit.framework.TestSuite.runTest(TestSuite.java:255) at junit.framework.TestSuite.run(TestSuite.java:250) at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
在初始化Xstream的地方看来下反编译的源码
public XStream() { this(null, (Mapper)null, ((HierarchicalStreamDriver) (new XppDriver()))); }
发现Xstream默认是使用XppDriver的
把Xstream的Driver改为
XStream xstream = new XStream(new DomDriver());
测试运行通过,至于为什么要使用DomDriver,还请各位大神指教,谢谢。
相关推荐
多个类注解@XStreamAlias,value相同、且在集合上使用了@XStreamImplicit会出现异常: com.thoughtworks.xstream.converters.ConversionException: No field 'null' found in class '.....(注解的...该包解决了这个bug
修改XStream源码,解决SAE不支持XStream的问题。
最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar ...
《XStream详解与应用》 ...总之,XStream是一个强大且灵活的工具,对于处理Java对象与XML之间的转换,它提供了简洁、高效的解决方案。无论你是新手还是经验丰富的开发者,都能从XStream的易用性和强大功能中受益。
XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...
xstream最新版jar包
这个“xStream完整Jar包”很可能包含了 XStream 库的所有组件,包括核心库、相关的依赖和可能的示例代码,以确保用户在使用过程中不会遇到因缺少依赖而导致的错误。 **XML 序列化与反序列化** XStream 的主要功能...
XStream 1.4.15 版本的更新主要目的是解决这些安全问题。开发者引入了新的安全特性,比如默认禁止不受信任的数据源反序列化,以及提供更严格的黑名单策略,来阻止潜在危险类的实例化。这些改进确保了只有白名单中的...
版本1.4.9是当前稳定版本,提供了许多性能优化和错误修复。 2. **dom4j-1.6.1.jar**:DOM4J是一个流行的Java XML API,它提供了一套全面而强大的处理XML、XPath和DOM的工具。XStream使用DOM4J作为其默认的DOM提供商...
《XStream解析依赖包详解》 在Java开发中,数据序列化是一个不可或缺的环节,它使得对象的状态可以被保存和...在实际项目中,理解这两个库的工作原理和相互关系,对于优化代码性能和解决可能出现的问题都至关重要。
6. **详尽的错误日志**:当序列化或反序列化出现问题时,XStream 提供了详细的错误信息。 7. **多格式支持**:除了XML,XStream 还可以将 Java 对象转换为 JSON 格式。 **XStream 的优势** 与传统的序列化框架相比...
XStream库提供了一个简单、直观的方式来实现这种转换,使得XML序列化和反序列化变得非常方便。本篇将详细介绍XStream如何处理XML与Java对象的相互转换,以及如何处理List、Map等集合类型的数据。 首先,XStream是一...
### XStream解析各种数据格式...无论是在简单的数据交换场景下还是在复杂的系统集成中,XStream 都能提供有效的解决方案。通过本文介绍的基本使用方法和高级特性,开发者可以更好地利用 XStream 来满足项目的实际需求。
xstream xstream-1.4.5.jar
* XStream 的管理和监控工具可以帮助用户快速定位和解决问题。 * XStream 的管理和监控工具可以集成到 Oracle 企业管理器中,提供统一的管理界面。 Oracle Database XStream 是一个功能强大且灵活的数据捕获和事件...
《XStream 1.3.1:Java对象到XML的高效转换工具》 XStream是一款强大的Java库,它能够将Java对象序列化为XML,并能从XML反序列化回Java对象。这个“xstream-1.3.1.zip”文件包含了一个名为“xstream-1.3.1.jar”的...
当需要将数据转换为XML格式以便于传输或处理时,工具如xStream就显得尤为重要。Java中的xStream库提供了一个简单易用的方式来将Java对象序列化为XML,反之亦然,即反序列化XML回Java对象。 **xStream简介** xStream...
XStream是一款强大的Java库,主要用于将Java对象序列化为XML,以及将XML反序列化回Java对象。在Java开发中,这种能力对于数据持久化、网络传输或配置存储等场景非常有用。标题中的"xstream-1.4.8最齐全的jar包"表明...
"xstream.jar及其他依赖jar包"是解决这一问题的重要工具,它包括了xstream-1.4.10.jar、xpp3-1.1.4c.jar和xmlpull_1_0_5.jar这三个文件。这些jar包提供了全面的Java对象到XML以及XML到Java对象的转换功能,简化了...
通过了解以上关键概念,你可以充分利用 XStream 的强大功能,无论是简化数据存储,还是在分布式系统中传递数据,XStream 都能提供简洁、高效的解决方案。在实际项目中,结合文档和 `xstream-1.4-API` 中的示例,你将...