1

我在服务中编写了两个基于 Rest 的 Web 方法:

 Response doSomething() ;

 Response doSomething2()

现在,我想将这些响应编组为两个不同的 xml 名称。因此,响应如下所示:

 **<doSomethingResponse>**   for doSomething()

 **<doSomething2Response>**   for doSomething2()

做这个的最好方式是什么。我正在使用 jaxB 进行编组。

4

2 回答 2

1

您可以利用 aJAXBElement来提供根元素名称。在下面的示例中,我们将使用 aJAXBElement来制作响应的根节点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 回答