CXF:当对象通过SOAP发送时,如何排除某些属性?

Slava Semushin:

我使用Apache CXF 2.4.2,当我从数据库向用户返回img时,我想排除一些属性(例如,密码)。如何在不创建临时班的情况下做到这一点是否有对此的注释?

Slava Semushin:

根据@ tomasz-nurkiewicz的评论,我应该使用@XmlTransient注释。但正如文档中所述

默认情况下,如果不存在类上的@XmlAccessorType,并且没有使用@XmlAccessorType对其超级类进行注释,则假定该类具有以下默认值:

@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)

其中XmlAccessType.PUBLIC_MEMBER表示:

除非由XmlTransient注释,否则每个公共获取器/设置器对和每个公共字段都将自动绑定到XML。私有,受保护或默认为仅打包访问的字段或getter / setter对仅在由相应的JAXB注释显式注释时才绑定到XML。

因此,这就是为什么@XmlTransient在Tomasz Nurkiewicz的示例中,对于私有字段不起作用的原因。有两种方法可以解决此问题:

1)向公共获取者添加注释:

private String password;

@XmlTransient
public String getPassword() {
    return password;
}

2)添加@XmlAccessorType到课程:

@XmlAccessorType(XmlAccessType.FIELD)
public User {

    @XmlTransient
    private String password;

}

可以在以下网址找到:http : //old.nabble.com/@XmlTransient-ignored-td7406659.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章