1

サービスに 2 つの REST ベースの Web メソッドを記述しました。

 Response doSomething() ;

 Response doSomething2()

ここで、これらの応答を 2 つの異なる xml 名としてマーシャリングしたいと考えています。そのため、応答は次のようになります。

 **<doSomethingResponse>**   for doSomething()

 **<doSomething2Response>**   for doSomething2()

これを行う最善の方法は何ですか。マーシャリングにjaxBを使用しています。

4

2 に答える 2

1

a を利用しJAXBElementて、ルート要素名を指定できます。以下の例では、 a を使用しJAXBElementて response のルート ノードを作成しますFOO

   @GET
    @Produces(MediaType.APPLICATION_XML)
    public Response get() {
        Customer customer = new Customer();
        customer.setFirstName("Jane");
        customer.setLastName("Doe");
        JAXBElement<Customer> jaxbElement = new JAXBElement(new QName("FOO"), Customer.class, customer);
        return Response.ok(jaxbElement).build();
    }
于 2013-07-09T10:36:27.163 に答える
0

@WebResultまたは@XmlElement注釈を使用できます。

@WebResult(name="doSomethingResponse")
//or
//@XmlElement(name="doSomethingResponse")
Response doSomething();

@WebResult(name="doSomething2Response")
//or
//@XmlElement(name="doSomething2Response")
Response doSomething2();
于 2013-07-08T23:33:36.227 に答える