No consigo que JAXB marque una marca de tiempo en una aplicación de servidor Resteasy JAX-RS.jaxb unmarshal timestamp
Mi clase es el siguiente:
@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;
}
}
}
¿Alguna idea?
Gracias.
De hecho, descubrí cómo hacer la traducción utilizando @XmlJavaTypeAdapter. Con esto, he podido adaptar varias clases de Java diferentes que requieren un tratamiento especial en mi código. Gracias. – Ralph
¡Debe tener mucho cuidado con SimpleDateformat, ya que no es seguro para la rosca! No estoy seguro si JAXB crea un nuevo objeto cada vez para el adaptador. –
Para obtener más información, consulte: http://bdoughan.blogspot.com/2011/01/jaxb-and-datetime-properties.html –