从xml消息隐藏实体变量 - @XmlTransient不起作用

问题描述 投票:6回答:2

我有一个实体类:

public class Customer implements Serializable {
private static final long serialVersionUID = 1L;

@XmlTransient
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "CUSTOMER_ID")
private Integer customerId;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 30)
@Column(name = "NAME")
private String name;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 30)
@Column(name = "ADDRESSLINE1")
private String addressline1;
@Basic(optional = false)
.
.
.
.

我在jax-ws web服务中通过xml发送了类的对象,如下所示:

<addressline1>xx</addressline1><addressline2>xx</addressline2><city>xx</city><country>xx</country><creditLimit>xx</creditLimit><customerId>xx</customerId><email>xx</email><name>xx</name><owner>xx</owner><phone>xx</phone><province>xx</province><zip>xx</zip>

是否有可能不发送其中一个变量,例如customerId,客户端应该看不到?我添加了@XmlTransient,但没有变化。

java xml web-services jaxb xmltransient
2个回答
19
投票

默认情况下,公共属性被序列化为XML。你需要标记相应的get方法@XmlTransient。如果您希望对字段进行注释,可以将以下内容添加到类@XmlAccessorType(XmlAccessType.FIELD)中。

欲获得更多信息


1
投票

@XmlTransient@XmlAccessorType(XmlAccessType.FIELD)的不同组合中尝试,在我的机器上它没有用。

对我来说隐藏函数的作用是使用@WebMethod(exclude = true)对每个函数进行注释,以将其隐藏在wsdl中,从而暴露给客户端。

© www.soinside.com 2019 - 2024. All rights reserved.