2

我正在使用 jax-ws 编写客户端和服务器。我的一个豆子有对父母的循环引用。为了防止循环,我为我的 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属性为空。

所以,问题是:“我哪里错了,不了解网络服务?”
我预计客户端将发送带有对象和父对象的请求,它们将通过引用链接。

4

1 回答 1

-1

看起来很有趣,但是您的问题与网络服务无关,只是与编组/解组。我猜是JAXB你的情况。我建议您相应地标记您的问题,我相信您会得到更多相关的答案。

同时,请发布 wsdl 文件(用于其中的模式)和此类 A 的完整源代码。

于 2012-06-27T05:49:23.087 回答