jax-wsを使用してクライアントとサーバーを作成しています。 私の豆の1つに、親に対する循環参照があります。サイクルを防ぐために、私は@ beanと@XMLIDRefアノテーションを使用しました。jaxbとjax-wsの循環参照
class A {
// simple fields
A parent;
@XMLID
String getID() {}
@XMLIDRef
A getParent() {}
}
ここで私はWebメソッドの結果としてbeanを返しています。私はすべて期待通りに動作します。 しかし、私は
A obj1 = //...
A obj2 = //...
obj2.setParent(obj1);
ws.updateA(obj2); // web-method signature is updateA(A a)
(ここではwsimportのツールによって生成された豆)
私は奇妙な行動を取得しています経由でメソッドへの入力パラメータとして、このBeanを渡すようにしようとしている場合。クライアントは、親オブジェクトがobj2の参照としてのみ存在するobj2を使用してSOAPリクエストを送信します。 obj2はサーバー側で正常にデコードできず、Parent
プロパティはnullです。
質問: "どこが間違っていて、ウェブサービスを理解できないのですか?"
私はクライアントが参照オブジェクトを介してリンクされるオブジェクトと親オブジェクトの両方でリクエストを送信することを期待しました。