私のJersey Rest Serviceで、次のエンティティタグを作成しようとしました:
String content = 12sdfs-345dsdfsdf-231yscysd;
String createdContent = create(content);
return Response.created(createdUri).entity(createdContent).build();
ジャージのドキュメントに書かれているように。しかしcreatedContent
ですnull
。どうしたの?
完全なコードは次のとおりです。
@POST
@Consumes("application/x-www-form-urlencoded")
public Response postObject(@FormParam("number") int number) {
ObjectDTO c = new ObjectDTO();;
c.setNumber(number);
String generatedId = generateID();
c.setId(generatedId);
c.setOwner(sec.getUserPrincipal().getName());
return postAndGetResponse(c);
}
private Response postAndGetResponse(ObjectDTO object) {
Response res;
System.out.println(object);
if(ObjectDAO.instance.getObjectDao().containsKey(object.getId())) {
res = Response.serverError().status(409).build();
} else {
System.out.println(object);
System.out.println(object.getId());
String createdContent = create(object.getId());
System.out.println(createdContent);
res = Response.created(uriInfo.getAbsolutePath()).entity(createdContent).build();
ObjectDAO.instance.getObjectDao().put(object.getId(), object);
}
return res;
}
編集:
http://jersey.java.net/nonav/documentation/latest/jax-rs.html#d4e188
2.5章