错误一:com.thoughtworks.xstream.mapper.CannotResolveClassException
原因是实体类中使用了注解 @XStreamAlias@XStreamImplicit等注解,但是转化的时候没有识别所以报错
解决办法:开启注解
xstream.processAnnotations(实体类.class);
错误二: com.thoughtworks.xstream.security.ForbiddenClassException
网上差说是 安全问题 解决办法:
Class<?>[] classes = new Class[] { userInfoAccounts.class, SysUserXml.class ,...}; XStream.setupDefaultSecurity(xstream); xstream.allowTypes(classes);
或者
xstream.setupDefaultSecurity(xstream);
xstream.allowTypesByWildcard(
new
String[] {
"包路径.**"
});
错误三:java.lang.ClassCastException
反序列失败
无法进性同类型转换!
Xstream java.lang.ClassCastException
在SpringBoot项目中,使用Xstream反序列化xml成实体类时,会发生明明是同种类型,在实际使用时却出现java.lang.ClassCastException的异常。
原因
因为springboot项目中不是使用的默认classloader。
解决方法
手动重设xtream的classloader
xstream.setClassLoader(实体类.class.getClassLoader());
参考:【解决方案】Xstream报错 java.lang.ClassCastException_xstreamjava.lang.classcastexception-CSDN博客