2016-07-15 13 views
1

Ich habe versucht, die json Objekt von Android-Client in meinem Ejb Based Web-Anwendung, die Restful API mit jax-rs verwendet. Aber ich bin nicht verfügbar, um das Objekt json zu erhalten. Es werfen 404 Fehler sogar alle keyname Ich habe übereinstimmen mit meiner Entitätsklasse VariableWie bekomme ich Json Objekt in Jax-Rs Restful Web-Services

Meine pojo Klasse sieht wie folgt aus:

@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; 
} 

} 

und meine Ressourcen-Klasse sieht wie folgt aus:

@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(); 
    } 
} 
+0

Warum produzieren Sie Klartext? '@Produces (MediaType.TEXT_PLAIN)' – ck1

+0

m ich falsch sir ??? –

+0

Wenn Sie mit JSON antworten möchten, müssen Sie '@Produces (" application/json ")' verwenden. – ck1

Antwort

1

Verwenden B. Jackson's ObjectMapper, um das Event-Objekt zu JSON zu serialisieren und es in der Datenbank zu speichern, z

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

gespeichert, aber ich brauche jsonobject, um es in Java-Objekt zu konvertieren. –

+0

Ich bin mir nicht sicher, ob ich dein Problem befolge. In Ihrer 'getResponse()' Methode auf dem Server wurde das 'event' Objekt bereits in ein Java Objekt deserialisiert. – ck1

+0

aber wenn ich überprüfen, in Postbote es Nullwert für Ereignis [ { "dateofEvent" werfen: "2016.08.08", "content": "djksahjhsjkahkjhsakjdhksah", "header": "khdsaklhhdsah", "Ort": "lkdjklsajlkjdlsa", "Spezifikation": "kdsajhlkdjsa" } ] –