如何在Java中修改POST消息的请求?

时间:2017-02-14 19:52:43

标签: java xml rest jaxb jax-rs

我刚开始使用Java创建Web服务。 我想将XML-Request发布到Restful Webservice,而Response应该是一个修改过的XML。所以实际上只需更改请求的根元素,并且应该添加另一个元素。

请求:

<Request>
    <name>name</name>
</Request>

回应:

 <Response>
    <name>name</name>
    <status>created</status>
</Response>

目前我只返回请求。 哪个是修改请求的最佳/最简单的方法?我可以用JAXB做到吗?

public class Resource {
    @POST
    @Produces
    @Consumes
    public Request request(Request r) {
        return r;
    }
}

1 个答案:

答案 0 :(得分:0)

看来你正在使用Jersey来揭露其余的api。正如RedFive所提到的那样,有很多可用于在互联网上使用jersey(jax-rs实现)构建rest api的例子。我在学习球衣时做了一个小POC。您可以找到示例POST API实现here。我正在传递请求bean(作为Person类对象)。请求json / xml被解组为Person对象。您必须返回响应对象,而不是返回请求类型的对象。希望这个例子能帮助你学习运动衫。

@POST
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response makeRequest(Request req) {
    Response res = new Response();
    res.setName(req.getName());
    return Response.entity(res).status(Response.Status.CREATED).build();
}

有一件事我想指出你可能不会在响应正文中返回状态。您返回201(CREATED)http状态代码,它类似于同一件事。