我无法让JAXB解封Resteasy JAX-RS服务器应用程序中的时间戳。我的课看起来像这样:@XmlAccessorType(XmlAccessType.NONE)@XmlRootElement(name = "foo")public final class Foo { // Other fields omitted @XmlElement(name = "timestamp", required = true) protected Date timestamp; public Foo() {} public Date getTimestamp() { return timestamp; } public String getTimestampAsString() { return (timestamp != null) ? new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp) : null; } public void setTimestamp(final Date timestamp) { this.timestamp = timestamp; } public void setTimestamp(final String timestampAsString) { try { this.timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timestampAsString); } catch (ParseException ex) { this.timestamp = null; } }}有任何想法吗?谢谢。
3 回答
不负相思意
TA贡献1777条经验 获得超10个赞
JAXB无法Date直接封送对象,因为它们没有足够的信息来明确。JAXB XmlGregorianCalendar为此目的引入了该类,但是直接使用它是非常不愉快的。
我建议您将timestamp字段XmlGregorianCalendar更改为,并尽可能更改各种方法来更新此字段,同时保留现有的公共接口。
如果要保留该Date字段,则需要实现自己的XmlAdapter类来告诉JAXB如何将DateXML转换为XML。
添加回答
举报
0/150
提交
取消
