1

我正在将 jaxb 用于解组过程

这是我的要求

<kiran acct = "1234567" />

package com;
@XmlRootElement(name = "kiran")
@XmlAccessorType(XmlAccessType.FIELD)
public class CustAcct {

    @XmlAttribute
    private String acct;

    public CustAcct() {

        super();
    }

    public String getAcct() {
        System.out.println("The New Getter Method of Account is called");
        return acct;
    }

    public void setAcct(String s) {
        System.out.println("The New Setter Method of Account  is called");
        acct = s;
    }

}

这是 Jersey(Restful Framework)自动将数据与 JAXB 绑定的方式

public class HelloService {

    @POST
    @Produces("application/text")
    public String sayPlainTextHello(CustAcct custdata) {

        System.out.println("The New Account is " + custdata.getAcct());
        return "Hi";
    }

}

我的问题是,为什么在这种情况下没有调用 Setter 方法 setAcct

我的意思是为什么没有打印“调用帐户的新 Setter 方法”行,以及调用 getMethod 内的行的位置(调用了帐户的新 Getter 方法)

基本上我想将数据处理为在请求 XML 中发送的属性。

是否有任何回调方法可以控制数据的设置方式?

提前致谢 。

4

1 回答 1

2

为什么在这种情况下没有调用 Setter 方法 setAcct ?

因为您将访问类型设置为 field: @XmlAccessorType(XmlAccessType.FIELD)。将其更改为@XmlAccessorType(XmlAccessType.PROPERTY)

XmlAccessType javadoc。

是否有任何回调方法可以控制数据的设置方式?

是的。使用适配器时,您可以完全控制编组/解组过程。

于 2012-08-07T13:44:33.230 回答