[英]Cyclic references in jaxb and jax-ws
我正在使用jax-ws编写客户端和服务器。 我的一个bean具有对父对象的循环引用。 为了防止循环,我为我的bean使用了@XMLId和@XMLIDRef注释。
class A {
// simple fields
A parent;
@XMLID
String getID() {}
@XMLIDRef
A getParent() {}
}
现在,由于网络方法,我将返回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。
因此,问题是:“我在哪里错了并且不了解Web服务?”
我希望客户端将通过对象和父对象发送请求,它们将通过引用链接。
看起来很有趣,但是您的问题与网络服务无关,仅与封送/拆组有关。 我猜在您的情况下是JAXB
。 我建议您相应地标记您的问题,我相信您会得到更多相关的答案。
同时,请发布wsdl文件(用于其中的模式)和此类A的完整源代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.