Estou criando uma aplicação apenas para testar o conteudo do curso. Na minha classe possuo campos do tipo java.sql.date e na hora de executar meu webservice ocorre erro porque o tipo date nao possue construtor publico. Criei uma classe adaptor para tentar contornar o problema, apesar de nao gerar mais o erro o webservice recebe os campos data como nulo.
//Modelo
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@Entity
public class Shift {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@ManyToOne (cascade=CascadeType.ALL)
private User user;
@ManyToOne (cascade=CascadeType.ALL)
private Company company;
private Integer reference;
private Double paymentRate;
@XmlJavaTypeAdapter(SqlDateAdapter.class)
private Date initialDay;
//Adaptor
public class SqlDateAdapter extends XmlAdapter<String, Date> {
public String marshal(Date v) throws Exception {
return v.toString();
}
public Date unmarshal(String v) throws Exception {
return Date.valueOf(v);
}
}
//xml
<shift>
<user>
<id>1</id>
</user>
<initialDate>2016-11-10</initialDate>
<finalDate>2016-11-10</finalDate>
<initialTime>10:00:00</initialTime>
<finalTime>16:00:00</finalTime>
<company><id>1</id></company>
<reference>12</reference>
</shift>