Webサービスの呼び出しの結果として返されるWebServiceは、 "CustomerResponse
"というResponseObjectを持っています。このオブジェクトを "ゼロから"実装すると、すべて正常に動作します。この場合の実装では、文字列、整数などの必要な「単純型」のみがすべて含まれていますが、オブジェクト参照/関連付けはありません。JAX-WS:継承されたレスポンス・オブジェクト(WSレスポンス)の「メンバー/フィールド」を除外する方法は?
しかし、私がやりたいことは、既存のオブジェクトを「再利用」することです。ドメインモデルには、アプリケーション自体で使用される "Customer
"オブジェクトがあります。代わりに、愚か多かれ少なかれ「CustomerReponse」オブジェクト(手動で再びすべてのメンバー/フィールドを入力して)、私は拡張子によってCustomer
オブジェクト上CutomerResponse
オブジェクトをベースたかっにCustomer
のクローニング:
class CustomerResponse extends Customer
== >問題は今、CustomerResponse
に、Webサービスを介して公開したくないCustomer
オブジェクト(DatabaseID、Security-Stuffなど)から継承されたいくつかの「内部」フィールドが含まれていることです。さらに、Customer
には、Address
、Orders
、History
のような他のオブジェクトに対する「オブジェクト参照/関連付け」がたくさん含まれています(Apache CXFの "評価」)...全体ObjectgraphをしてResponseObjectに含めるしようと
==>それがすることは可能です 『のメンバー/フィールド『』一部を除外し、既存のオブジェクトに基づいてWebサービスのレスポンスオブジェクトを何とか』拡張拡張されたスーパータイプですか?(したがって、DatabseIDなどの一部のメンバーと、(住所/注文/ヒストロイ)などの「オブジェクトの関連付け」のすべてを除外したいと考えています。 注釈と手順はどうすれば実現できますか?
ありがとうございます! Jan
こんにちはKT、ありがとうございます。まあ、実際に@XMLTransientを試しましたが、何とかしていませんでした。それにもかかわらず、Apache CXFはWebサービスのロード時にobjectgraphを少なくとも「クロール」していくつかの例外をスローしたように見えました(My objectgraphには同じ静的列挙型の内部静的な名前がいくつかあります...)。 ! – jan