javajax-rs返回列表为xml

javajax-rs返回列表为xml,java,xml,resteasy,Java,Xml,Resteasy,我有RESTWeb服务,当我以xml响应的形式返回一个结果时是好的,但当我尝试以xml的形式返回列表时,它返回奇怪的响应。只有一个对象充满了参数,另一个对象没有填充数据 我的服务级别: @Path("/result") public class Service { @GET @Path("/{paymentId}") @Produces("application/xml") public Response getPaymentResult(@PathParam("

我有RESTWeb服务,当我以xml响应的形式返回一个结果时是好的,但当我尝试以xml的形式返回列表时,它返回奇怪的响应。只有一个对象充满了参数,另一个对象没有填充数据

我的服务级别:

@Path("/result")
public class Service {
    @GET
    @Path("/{paymentId}")
    @Produces("application/xml")
    public Response getPaymentResult(@PathParam("paymentId") String paymentId){
        List<PaymentResult> ls = new ArrayList<PaymentResult>();

        PaymentResult pr = new PaymentResult();
        pr.setAmount(123);
        pr.setCliendId(paymentId);
        pr.setPan("1111111111");
        pr.setTypesId(2);
        pr.setDate(new Date());
        ls.add(pr);

        PaymentResult pr1 = new PaymentResult();
        pr.setAmount(12123213);
        pr.setCliendId(paymentId + "321");
        pr.setPan("2222222222");
        pr.setTypesId(1);
        pr.setDate(new Date());
        ls.add(pr1);

        PaymentResult pr2 = new PaymentResult();
        pr.setAmount(33333333333);
        pr.setCliendId(paymentId + "321");
        pr.setPan("11313");
        pr.setTypesId(3);
        pr.setDate(new Date());
        ls.add(pr2);

        GenericEntity<List<PaymentResult>> entity = new GenericEntity<List<PaymentResult>>(ls){};
        Response response = Response.ok(entity).build();

        return response;
    }
答复是:

<collection>
<result>
<amount>1222222222</amount>
<cliendId>1111111111111111321</cliendId>
<date>2016-01-15T14:21:05.445+04:00</date>
<pan>11313</pan>
<typesId>3</typesId>
</result>
<result>
<amount>0</amount>
<typesId>0</typesId>
</result>
<result>
<amount>0</amount>
<typesId>0</typesId>
</result>
</collection>

1222222222
1111111111111111321
2016-01-15T14:21:05.445+04:00
11313
3.
0
0
0
0

当我返回简单列表时,它有相同的结果,没有泛型实体。谢谢

您创建了对象
pr
pr1
pr2
,但只将值放入
p
。 因此,
pr1
pr2
具有空值

i、 e

应该是

PaymentResult pr1 = new PaymentResult();
pr1.setAmount(12123213);

等等。

您创建对象
pr
pr1
pr2
,但只将值放入
p
。 因此,
pr1
pr2
具有空值

i、 e

应该是

PaymentResult pr1 = new PaymentResult();
pr1.setAmount(12123213);

等等。

非常感谢。我一整天都在犯这个愚蠢的错误:非常感谢你。我一整天都在犯这个愚蠢的错误:D
PaymentResult pr1 = new PaymentResult();
pr1.setAmount(12123213);