最近项目使用到webservice调用厂商的接口,遇到的需要解析错误信息的需求,于是对于错误信息的解析使用比较暴力方式:使用XStream直接手动解析错误消息到对象。
在解析的过程中遇到了com.thoughtworks.xstream.security.ForbiddenClassException异常的问题,多方寻找后找到解决方式:
xStream = new XStream();
// 尽量限制所需的最低权限 这条语句解决该问题
xStream.addPermission(AnyTypePermission.ANY);
// 对象设置默认安全防护
// 会导致com.thoughtworks.xstream.security.ForbiddenClassException
//xStream.setupDefaultSecurity(xStream);
// 对类开启注解
xStream.processAnnotations(FaultInfo.class);
还有一种方式是非注解方式,这里不使用非注解方式开发,不赘述,解决方式来源于: