2

私の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章

4

1 に答える 1

3

エンティティ タグを作成するには、単に を呼び出しますnew EntityTag(string)。しかし、上記のコードで何を達成しようとしているのでしょうか? エンティティ タグは、本文ではなく、ヘッダーに添付する必要があります。

于 2012-06-21T15:50:31.827 に答える