我有一个实体类:
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,但没有变化。
答案 0 :(得分:19)
默认情况下,公共属性被序列化为XML。您需要标记相应的get
方法@XmlTransient
。如果您希望对字段进行注释,可以将以下内容添加到班级@XmlAccessorType(XmlAccessType.FIELD)
。
了解更多信息
答案 1 :(得分:1)
在@XmlTransient
与[{1}}的不同组合中使用@XmlAccessorType(XmlAccessType.FIELD)
进行了尝试,在我的机器上无效。
对我来说隐藏功能的作用是用@WebMethod(exclude = true)
注释每个函数,将其隐藏起来wsdl
,从而暴露给客户。