Hi
i'm get confused why this simple code not working, i have this simple class
@Entity
@Table(name = "users")
@XmlRootElement(name = "user")
@XmlAccessorType(XmlAccessType.FIELD)
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
protected Long id;
@NotNull
@Size(min = 3, max = 100, message = "{invalid.fullName}")
@Column(name = "full_name", nullable = false, length = 100)
@XmlElement(name = "fullName")
private String fullName;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "last_login_date")
@XmlElement(name = "lastLoginDate")
@XmlJavaTypeAdapter(DateFormatterAdapter.class)
private Date lastLoginDate;
public Long getId() { return id;}
public void setId(Long id) { this.id = id; }
public String getFullName() { return fullName; }
public void setFullName(String fullName) { this.fullName = fullName; }
public Date getLastLoginDate() { return lastLoginDate; }
public void setLastLoginDate(Date lastLoginDate) {
this.lastLoginDate = lastLoginDate;
}
public User() { }
}
and this simple XmlAdapter as follow
public class DateFormatterAdapter extends XmlAdapter<String, Date> {
public DateFormatterAdapter() { }
@Override
public Date unmarshal(String v) throws Exception {
return new Date(Long.parseLong(v));
}
@Override
public String marshal(Date v) throws Exception {
return ((Long) v.getTime()).toString();
}
}
and a jersey restful service that return list of users as APPLICATION_JSON,
in this scenario every things is ok, but DateFormatterAdapter class not been
called and lastLoginDate not formatted as desired in result.
but when i am doing this as follow manually,every things is Ok
JAXBContext jc = JAXBContext.newInstance(User.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
File xml = new File("e:/input.xml");
User foo = (User) unmarshaller.unmarshal(xml);
foo.setLastLoginDate(new Date());
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(foo, System.out);
i am using tomee 7.0.2 as my application server and eclipselink-2.7.0
--
Sent from: http://tomee-openejb.979440.n4.nabble.com/TomEE-Dev-f982480.html