我無法讓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
提交
取消