2017-02-14 5 views
0

私はJavaでWebサービスを作成し始めています。 レスポンスのWebサービスにXMLリクエストをPOSTしたいのですが、レスポンスは変更された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

あなたは残りのAPIを公開するためにジャージーを使用しているようです。 RedFiveが言及しているように、インターネット上でjersey(jax-rs実装)を使用して残りの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(作成済み)httpステータスコードを返します。

関連する問題