【发布时间】:2012-05-09 11:20:34
【问题描述】:
我正在使用 jax-ws 编写客户端和服务器。 我的一个 bean 对父级有循环引用。为了防止循环,我为我的 bean 使用了 @XMLId 和 @XMLIDRef 注释。
class A {
// simple fields
A parent;
@XMLID
String getID() {}
@XMLIDRef
A getParent() {}
}
现在我通过 web 方法返回 bean,一切都按我的预期工作。 但是,如果我尝试将此 bean 作为输入参数传递给方法,则通过
A obj1 = //...
A obj2 = //...
obj2.setParent(obj1);
ws.updateA(obj2); // web-method signature is updateA(A a)
(这里的bean是由wsimport工具生成的)
我的行为很奇怪。客户端使用 obj2 发送 SOAP 请求,其中父对象仅作为 obj2 中的引用存在。所以,obj2在服务器端无法正常解码,Parent属性为null。
所以,问题是:“我哪里错了,不了解网络服务?”
我希望客户端会发送带有对象和父对象的请求,它们将通过引用链接。
【问题讨论】:
标签: java web-services jakarta-ee soap