1

我们有一个定义对象 ID (UID) 的类:

公共最终类 UUID 实现 Serializable, Comparable { .... }

和另一个类:

    @XmlType(name = "ChangeFieldValueInstruction")
    public static class ChangeFieldValueInstruction<T> extends Instruction
    {
        private T newVal;

        public ChangeFieldValueInstruction()
        {
            super();
        }

        public ChangeFieldValueInstruction(String fieldPath, T newVal)
        {
            super(fieldPath);
            setNewVal(newVal);
        }


        public T getNewVal()
        {
            return newVal;
        }

        public void setNewVal(T newVal)
        {
            this.newVal = newVal;
        }
      ................
    }

这个类(UpdateObjectRequest)是通过一个网络服务(我们使用spring)传递的。

我有一个包信息文件,它为 UUID.class 定义了一个适配器,但是当我们将一个 UID 对象传递给 newVal 时,我们看到没有调用该适配器,实际上调用了默认的 UID 构造函数。我尝试使用@XmlAnyElement 注释getNewVal() 方法,并将@XmlJavaTypeAdapter 也添加到UID 类中(正如这里有人建议的那样),但它仍然不起作用。还尝试在 xsd 中使用 @XmlSeeAlso(UUID.class) BTW 注释 UpdateObjectRequest 我看到 newVal 被定义为 xs:anyType

那么有谁知道我怎样才能让它工作?10 倍。

4

1 回答 1

0

不可能,恕我直言。

这应该如何工作?您将拥有 SOAP WebService 有效负载的动态 XML 模式。接收服务应该如何反应,他猜不出元素的类型。

使用 SOAP、Web 服务及其操作,XML 类型在 WSDL - WebService 定义中预定义。这就是客户端和服务器可以互操作的方式,因为它们协商的有效载荷格式不是动态的。

您需要准确定义,可以在 ws 客户端和服务器之间传递哪些消息、类型

于 2012-12-30T07:53:23.513 回答