Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何注释java.sql.Timestamp对象_Java_Rest_Jaxb_Jersey - Fatal编程技术网

如何注释java.sql.Timestamp对象

如何注释java.sql.Timestamp对象,java,rest,jaxb,jersey,Java,Rest,Jaxb,Jersey,背景 我有一个根元素类,它包含类java.sql.Timestamp的变量,我希望JAXB从该变量创建xml元素 我尝试过的 我创建的类适配器是 导入java.sql.Date 导入java.sql.Timestamp 导入javax.xml.bind.annotation.adapters.XmlAdapter } 。然后我对获取该变量的函数进行注释: @XmlJavaTypeAdapter(timestapter.class) public java.sql.Timestamp ge

背景

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

我尝试过的

  • 我创建的类适配器是
导入java.sql.Date

导入java.sql.Timestamp

导入javax.xml.bind.annotation.adapters.XmlAdapter

}

  • 。然后我对获取该变量的函数进行注释:
@XmlJavaTypeAdapter(timestapter.class)
public java.sql.Timestamp getEndDate(){

如果(endDate==null)

retrieveInfo()

返回结束日期

}

问题

我仍然得到这个例外

java.sql.Date does not have a no-arg default constructor.
我也检查过了,但它是关于字符串到时间戳的,不是我的情况

任何帮助都将不胜感激

编辑

这个变量在类
OrderStatus
中,我从类
OrderImpl
中这样调用它

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

您的适配器需要如下所示:

public class TimestampAdapter extends XmlAdapter<Date, Timestamp> {
      public Date marshal(Timestamp v) {
          return new Date(v.getTime());
      }
      public Timestamp unmarshal(Date v) {
          return new Timestamp(v.getTime());
      }
  }

您的
XmlAdapter
应该将
Timestamp
转换为
java.util.Date
,而不是
java.sql.Date

,正如我在问题中提到的,我看到了这个答案,这不是我的情况,我得到了这个异常
DateAdapter不适用于java.sql.Timestamp类型的字段我已经尝试过你的解决方案,我在问题中提到了这一点。只是问题没有显示出来,现在我编辑它,我应该说清楚。我认为问题在于您没有提到正在转换的类型。在我的回答中,我补充说感谢你的努力,+1可能重复的@BlaiseDoughan它没有重复,请检查问题,它是关于
java.sql.date
,而不是
java.util.date
谢谢你的回答,我正在尝试。我没有得到异常,但是,当我尝试调用该服务时,在浏览器中也没有得到任何结果。此外,当我试图在本地调用该函数时,我得到了正确的数据(+1)。我在浏览器中得到了类中每个变量的结果,除了
EndDate
,似乎这个方法本身并没有触发。我在问题中添加了一些信息,这可能会有所帮助。@WilliamKinaan-如果您尝试JAX-RS之外的独立JAXB示例来测试您的映射,会怎么样。您可以在
unmarhaller
上设置
ValidationEventHandler
,以捕获任何问题。
@Override
    @XmlElement(name = "Status", type = OrderStatus.class)
    public OrderStatus getStatus() {
        return status;
    }
public class TimestampAdapter extends XmlAdapter<Date, Timestamp> {
      public Date marshal(Timestamp v) {
          return new Date(v.getTime());
      }
      public Timestamp unmarshal(Date v) {
          return new Timestamp(v.getTime());
      }
  }
@XmlJavaTypeAdapter( TimestampAdapter.class)
        public Timestamp done_date;