JAXB:如何在运行时从编组中排除特定字段?

时间:2012-06-06 12:27:59

标签: java rest jaxb cxf jettison

我正在使用JAXB + Jettison来提供多格式RESTful(无架构)服务。 @XmlTransient注释适用于那些我根本不想序列化的属性。但这还不够。

如何从编组在运行时中排除特定字段?

我可以以某种方式预先初始化Marshaling上下文并定义要排除的字段吗?

我需要根据当前用户的角色有选择地序列化对象字段。

1 个答案:

答案 0 :(得分:2)

我以前做过类似的事情,在层次结构中有许多DTO,从瘦到全脂,每个都有不同的JAXB映射。然而,这仅适用于少数角色。

MOXy允许运行时绑定更改,似乎适合您的用例。

但是,请注意篡改您的服务合同,这可能会导致奇怪的实时错误,这些错误会导致追踪。