我无法让JAXB在Resteasy JAX-RS服务器应用程序中解组时间戳。jaxb unmarshal timestamp
我的类看起来是这样的:
@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;
}
}
}
任何想法?
谢谢。
我真的想出了如何使用@XmlJavaTypeAdapter进行翻译。有了这个,我已经能够适应几个不同的Java类,这些类在我的代码中需要特殊的处理。谢谢。 – Ralph 2010-07-06 11:01:08
您需要对SimpleDateformat非常小心,因为它不是线程安全的!我不确定JAXB是否每次都为适配器创建一个新对象。 – 2011-03-02 04:16:48
欲了解更多信息,请参阅:http://bdoughan.blogspot.com/2011/01/jaxb-and-datetime-properties。html – 2011-03-19 01:36:40