繁体   English   中英

jaxb和jax-ws中的循环引用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM