我正在使用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
属性为空。
所以,问题是:“我哪里错了,不懂网络服务?” 我希望客户端将发送带有对象和父对象的请求,并通过引用将它们链接起来。
答案 0 :(得分:-1)
看起来很有趣,但你的问题与网络服务无关,只是与编组/解组。我猜你的情况是JAXB
。我建议您相应地标记您的问题,我相信您会得到更多相关答案。
在此期间,请发布wsdl文件(用于其中的架构)以及此类A的完整源代码。