Resolving: java.sql.Timestamp does not have a no-arg default constructor
Problem: getting java.sql.Timestamp does not have a no-arg default constructorSolution: Create an XMLAdapter
Example: Annotate the field:
@XmlJavaTypeAdapter( TimestampAdapter.class)
public Timestamp done_date;And you’ll need the actual TimestampAdapter class:
public class TimestampAdapter extends XmlAdapter<Date, Timestamp> {
public Date marshal(Timestamp v) {
return new Date(v.getTime());
}
public Timestamp unmarshal(Date v) {
return new Timestamp(v.getTime());
}
}You can also annotate the package holding the object you are marshaling with the Timestamp attribute. e.g. in com/example/package-info.java have:
@XmlJavaTypeAdapters(
@XmlJavaTypeAdapter(value=TimestampAdapter.class,type=Timestamp.class))
package com.example;Note that annotations do not flow ‘down’ to the sub packages. e.g. no use putting the package-info.java in the ‘com’ package.
Better solution: someone at Sun/Oracle annotate the actual Timestamp class please?