2016-07-15 1 views
1

Ejbjax-rsRestful apiを使用しているWebアプリケーションの中に、アンドロイドクライアントからjsonオブジェクトを取得しようとしました。しかし、私はjsonオブジェクトを入手することができません。jax-rsでJsonオブジェクトを取得する方法

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

} 

と、このように私のリソースクラスを見て:

@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

プレーンテキストを作成するのはなぜですか? '@Produces(MediaType.TEXT_PLAIN)' – ck1

+0

私は間違っていますか? –

+0

JSONで返信したい場合は、 '@Produces(" application/json ")'を使用する必要があります。 – ck1

答えて

1

使用それも、私が可変の私のエンティティクラスのような

マイpojoクラス表情ですべてのキー名と一致する必要があり404エラーを投げますJackson's ObjectMapperなどのライブラリを使用して、EventオブジェクトをJSONにシリアル化してデータベースに保存します。

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

が、私はそれをJavaオブジェクトに変換するjsonobjectが必要です。 –

+0

私はあなたの問題に従っているかどうかはわかりません。サーバー上の 'getResponse()'メソッドでは、 'event'オブジェクトはすでにJavaオブジェクトに逆シリアル化されています。 – ck1

+0

私はそれがイベント ためのヌル値を投げる郵便配達にチェック[ { "dateofEvent": "2016年8月8日"、 "コンテンツ": "djksahjhsjkahkjhsakjdhksah"、 "ヘッダ": "khdsaklhhdsah"、 "place": "lkdjklsajlkjdlsa"、 "仕様": "kdsajhlkdjsa" } ] –

関連する問題