Java 从xml消息隐藏实体变量-@XmlTransient不工作
我有一个实体类:Java 从xml消息隐藏实体变量-@XmlTransient不工作,java,xml,web-services,jaxb,xmltransient,Java,Xml,Web Services,Jaxb,Xmltransient,我有一个实体类: 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 cu
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>
xxxxxxxxxxxxxxxxxxxx
是否可以不发送客户机不应该看到的customerId之类的变量?
我添加了@XmlTransient,但没有任何更改。默认情况下,公共属性序列化为XML。您需要标记相应的
get
方法@xmltransive
。如果希望对字段进行注释,可以将以下内容添加到类@xmlacessortype(xmlacesstype.FIELD)
了解更多信息
@xmltransive
与@xmlacessortype(xmlacesstype.FIELD)
的不同组合,但在我的机器上无法工作
对我来说,隐藏函数的工作就是用
@WebMethod(exclude=true)
注释每个函数,从而将其隐藏在wsdl
中,从而暴露给客户端。感谢您的回复,工作得很好。这些小东西很难找到。