2017-02-14 30 views
0

我正在用Java创建Webservice的开始。 我想发布一个XML请求到一个Restful Webservice,并且响应应该是一个修改后的XML。所以实际上只是请求的根元素应该被改变,它应该被添加另一个元素。如何修改Java中POST消息的请求?

请求:

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

回答

0

看来你是用Jersey来暴露其余的api。正如RedFive提到的那样,在Internet上使用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状态代码,它类似于同一事物。