7

私はエンティティクラスを持っています:

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 などの変数の 1 つを送信しないことは可能ですか? @XmlTransient を追加しましたが、変更はありません。

4

2 に答える 2

21

デフォルトでは、パブリック プロパティは XML にシリアル化されます。get対応するメソッドをマークする必要があります@XmlTransient。フィールドに注釈を付けたい場合は、次をクラスに追加できます@XmlAccessorType(XmlAccessType.FIELD)

詳細については

于 2013-09-04T10:08:54.260 に答える
1

@XmlTransientとさまざまな組み合わせで試してみました@XmlAccessorType(XmlAccessType.FIELD)が、私のマシンでは機能しませんでした。

関数を非表示にするために私にとってうまくいったのは、各関数に で注釈を付け、@WebMethod(exclude = true)それを から非表示にし、wsdlそれによってクライアントに公開することでした。

于 2016-12-30T08:43:44.543 に答える