今天工作中遇到了这个问题:
com.thoughtworks.xstream.converters.ConversionException: Cannot construct ClassXXX as it does not have a no-args constructor : Cannot construct java.util.RandomAccessSubList as it does not have a no-args constructor
害得我跟我们同事忙活了一个下午才搞定
一般出现这个问题是因为在使用XStream时,某些类没有实现序列化,且又没有空的构造器。这些类一般是第三方包中的,自己写的类直接实现序列化或添加一个空的构造器就行了。
解决这个问题可以有两种实现方式:
1. 使用Converter,把这个类的对象反序列化
例如:
public class RandomAccessSubListConverter extends CollectionConverter { public RandomAccessSubListConverter(Mapper mapper) { super(mapper); } @Override public boolean canConvert(Class arg0) { return arg0.getName().equals("java.util.RandomAccessSubList"); } @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { reader.moveDown(); ArrayList arrayList = new ArrayList(); populateCollection(reader, context, arrayList); reader.moveUp(); return arrayList; }
2. 可以升级JDK到6.XX版本以上,XStream就可以支持非序列化且没有空构造器的类了。
今天遇到的这个问题的原因就是因为JDK版本的问题造成的。
在WebLogic下,大多数人都喜欢用jrocket的JDK,因为Oracle宣称它是最快的JDK,但是oracle 11g自带的JDK和XStream存在这个兼容问题。
我们换回了JDK 1.6.22,问题就解决了。
见老外的讨论:
相关推荐
xstream xstream-1.4.5.jar
powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-class...
XStream 用法详解 XML 转换为 java 实体类 所需要的 xstream-1.4.3-sources.jar jar包 具体实现请参考 http://blog.csdn.net/morning99/article/details/28875159
修改XStream源码,解决SAE不支持XStream的问题。
XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...
xstream最新版jar包
xstream-1.4.20.jar
赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...
XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换。将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件。
xstream-all-1.4.7.jar;xstream-all-1.4.7.jar;xstream-all-1.4.7.jar;
赠送jar包:xstream-1.4.7.jar; 赠送原API文档:xstream-1.4.7-javadoc.jar; 赠送源代码:xstream-1.4.7-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.7.pom; 包含翻译后的API文档:xstream-1.4.7-javadoc-...
在压缩包子文件的文件名称列表中,我们只看到"xstream-1.4.2",这可能是XStream-1.4.2版本的源代码或者文档,或者是未打包的JAR文件。解压后,用户可以查看源代码,了解其内部实现,或者进行二次开发。 深入理解...
xstream-1.4.10-java7.jar。 稳定版,由jdk1.7编译。
赠送jar包:xstream-1.4.7.jar; 赠送原API文档:xstream-1.4.7-javadoc.jar; 赠送源代码:xstream-1.4.7-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.7.pom; 包含翻译后的API文档:xstream-1.4.7-javadoc-...
xstream-1.4.17.jar
赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...
xstream-1.4.19.jar
使用 XStream 不用任何映射就能实现多数 Java 对象的序列化。在生成的 XML 中对象名变成了元素名,类中的字符串组成了 XML 中...该下载资源包括示例源码、相关的 xpp3_min-1.1.4c.jar xstream-1.3.jar 包及XStream API
标题中的"xstream-1.4.8最齐全的jar包"表明这是一个包含了XStream库所有功能的完整版本,版本号为1.4.8,适用于各种需求。 描述中提到"java对象转xml以及xml转java对象,操作很简单",这体现了XStream的核心特性。...