In one of my hibernate classes I’ve a Timestamp variable. Now everything was alright when I used only the hibernate stuff on the server. But now I’m implementing webservice with wsgen.
I get an error because Timestamp doesn’t got an no-args default constructor.
Message;
Caused by: java.security.PrivilegedActionException: com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
java.sql.Timestamp does not have a no-arg default constructor.
The Class:
package com.PTS42.planner;
import java.io.Serializable;
import java.sql.Timestamp;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.persistence.*;
import org.hibernate.annotations.GenericGenerator;
@WebService
@Entity @Table(name="Reserveringen")
public class Reservering implements Serializable {
@Id @GenericGenerator(name = "generator", strategy = "increment")
@GeneratedValue(generator = "generator")
private int id;
private Timestamp vanaf;
private Timestamp tot;
@ManyToOne
@Embedded
private Klant klant;
@ManyToOne
@Embedded
private Machine machine;
public int getId() {
return id;
}
public void setId(@WebParam(name="reservering_id")int id) {
this.id = id;
}
public Klant getKlant() {
return klant;
}
public void setKlant(@WebParam(name="reservering_klant")Klant klant) {
this.klant = klant;
}
public Timestamp getTot() {
return tot;
}
public void setTot(@WebParam(name="reservering_tot")Timestamp tot) {
int tempint = tot.getMonth();
tot.setMonth(tempint-1);
this.tot = tot;
}
public Timestamp getVanaf() {
return vanaf;
}
public void setVanaf(@WebParam(name="reservering_vanaf")Timestamp vanaf) {
int tempint = vanaf.getMonth();
vanaf.setMonth(tempint-1);
this.vanaf = vanaf;
}
public Machine getMachine() {
return machine;
}
public void setMachine(@WebParam(name="reservering_machine")Machine machine) {
this.machine = machine;
}
public Reservering() {
}
public Reservering(@WebParam(name="reservering_constructor_vanaf") Timestamp vanaf, @WebParam(name="reservering_constructor_tot")Timestamp tot, @WebParam(name="reservering_constructor_klant")Klant klant, @WebParam(name="reservering_constructor_machine")Machine machine)
{
this.vanaf = vanaf;
this.tot = tot;
this.klant = klant;
this.machine = machine;
}
}
Anyone know how to solve this, without using an other kind of variable then Timestamp.
I’m not sure why you’re against using something other than Timestamp. The following code will give you the same database structure and it doesn’t try to expose a SQL class where a SQL class has no business being exposed: