最近用到了非常坑的问题,唉,提起来我就头疼。
有一些测试用例本地都是正常的,但是发到dev就不行了。通过远程debug跟踪发现是xstream.fromXML(in)的时候报错的,大概错误如下:
---- Debugging information ----
message : Cannot construct 具体实体 as it does not have a no-args constructor
cause-exception : com.thoughtworks.xstream.converters.reflection.ObjectAccessException
-------------------------------
最开始我怀疑是maven仓库的缓存问题,因为这个实体所在的jar有更新,重新上传了下mavne的依赖并且更改了版本号,结果还是不行。
于是开始了google,有三个解决方案,如下:
1:提供一个无参数构造函数(显而易见)
2:使此对象实现Serializable。
3:升级到xstream 1.4.4 *
其中,因为这个实体是外部服务的,不想太麻烦,我就选择了第三种,结果不行。。最后用第二种方式解决的。