Jersey如何注释java.sql.Timestamp对象

Wil*_*aan 4 java rest jaxb jersey

背景

我有一个Root元素类,它包含类的变量java.sql.Timestamp,我希望JAXB从该变量创建xml元素.

我试过了什么

  • 我创建了类适配器.

import java.sql.Date;

import java.sql.Timestamp;

import javax.xml.bind.annotation.adapters.XmlAdapter;

public class TimestampAdapter extends XmlAdapter <Date, Timestamp> {
Run Code Online (Sandbox Code Playgroud)
  public Date marshal(Timestamp v) {
      return new Date(v.getTime());
  }

  public Timestamp unmarshal(Date v) {
      return new Timestamp(v.getTime());
  }
Run Code Online (Sandbox Code Playgroud)

}

  • .然后我注释获取该变量的函数:

@XmlJavaTypeAdapter(TimestampAdapter.class)
public java.sql.Timestamp getEndDate(){

if(endDate == null)

retrieveInfo();

return endDate;

}

问题

我仍然得到这个例外

java.sql.Date does not have a no-arg default constructor.
Run Code Online (Sandbox Code Playgroud)

此外,我已经检查了这个线程,但它正在谈论String到TimeStamp,而不是我的情况.

任何帮助,将不胜感激.

编辑

这个变量在类OrderStatus,我把它从类OrderImpl这样

@Override
    @XmlElement(name = "Status", type = OrderStatus.class)
    public OrderStatus getStatus() {
        return status;
    }
Run Code Online (Sandbox Code Playgroud)

bdo*_*han 5

XmlAdapter应该转换Timestamp为/从而java.util.Date不是java.sql.Date.