Search code examples
javaandroidrestejbjax-rs

how to get Json Object in jax-rs Restful web services


I have tried to get the json object from android client in my Ejb Based Web application which used Restful api with jax-rs. But I'm unavailable to get the json object. It throw 404 error even I have match all the keyname with my entity class variable

My pojo class look like this:

@Entity
@Table(name = "events")
@NamedQueries({
    @NamedQuery(name = Event.FIND_ALL,query="Select e from Event e")
})
public class Event implements Serializable{

public static final String PREFIX="np.com.drose.data.modules.employee.domain.event.";
public static final String FIND_ALL=PREFIX+"FIND_ALL";

@Id
@GeneratedValue
private int eventId;

@Future
@Temporal(TemporalType.DATE)
private Date dateofEvent;

private String content;

private String header;

private String place;

private String specification;

public int getEventId() {
    return eventId;
}

public void setEventId(int eventId) {
    this.eventId = eventId;
}

public Date getDateofEvent() {
    return dateofEvent;
}

public void setDateofEvent(Date dateofEvent) {
    this.dateofEvent = dateofEvent;
}

public String getContent() {
    return content;
}

public void setContent(String content) {
    this.content = content;
}

public String getHeader() {
    return header;
}

public void setHeader(String header) {
    this.header = header;
}

public String getSpecification() {
    return specification;
}

public void setSpecification(String specification) {
    this.specification = specification;
}

public String getPlace() {
    return place;
}

public void setPlace(String place) {
    this.place = place;
}

}

and my Resources class look like this:

    @Path("secured")
    @Stateless
    public class EventAddResurces {
    @Inject
    EventServices eventServices;


    @POST
    @Path("/event/add")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.TEXT_PLAIN)
    public Response getResponse(Event event){
        this.eventServices.addEvent(event);
        return Response.ok().status(200).entity("Successfully added").build();
    }
}

Solution

  • Use a library, such as Jackson's ObjectMapper, to serialize the Event object to JSON and save it in the database, e.g.

    ObjectMapper objectMapper = new ObjectMapper();
    String json = objectMapper.writeValueAsString(event);
    // Persist JSON string in database.