XStream的一个小技巧

该博客为转载内容,转载自https://www.cnblogs.com/kapok/archive/2005/12/11/294763.html ,涉及Java相关知识。
XStream在marshall和unmarshall throwable的object的时候,采取的机制与其他的不是太一样,我的app里面的exception都是以chain的形式连在一起,所以可以一直跟踪到最下面的rootcause,例如:
1   <class="java.lang.Exception">
2     <cause class="java.lang.Exception" reference=".."/>
3     <stackTrace>
4       <trace>com.*.exception.TestXStreamExceptionHandle.main(TestXStreamExceptionHandle.java:22)</trace>
5     </stackTrace>
6   </t>
也就是其中的cause字段会一直重复到最root的exception,这样在如果在服务器端进行unmarshall,有一个要求就是cause所涉及到的所有exception类必须在classpath当中,而有时候并不需要这么多的信息,所以可以用transient关键字来标记throwable的不需要在客户端和服务器端进行marshall和unmarshall,而用其他字段来hold这个信息。

转载于:https://www.cnblogs.com/kapok/archive/2005/12/11/294763.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值