【问题标题】:How can I pass a custom type as parameter to RestEasy service?如何将自定义类型作为参数传递给 RestEasy 服务?
【发布时间】:2011-07-04 11:23:41
【问题描述】:

我不好意思问:但是对于将解组自定义类型的 resteasy 服务方法,正确的注释组合是什么?

我能够从返回自定义类型(带有 jaxb 注释)的方法成功生成 json 和 xml,但我未能将这些类型转换为方法参数。网络上的所有示例似乎都传递了简单的类型,例如字符串。

文档声称 resteasy 可以将 json 和 xml 解组为带注释的类型,但是如何?以下签名需要一个带有字符串参数的对象,它采用构造函数,这不是我想要的。

@GET
@Path("/somepath/ontheserver/settestchild")
@Produces("application/xml")
String getQueryParam(@QueryParam("testchild")TestChild param);

TestChild 有 JAXB 注释,但我想轻松地将传入的 xml 解组到该对象的实例,这不会发生。我在这里遗漏了什么吗?

【问题讨论】:

    标签: java rest resteasy


    【解决方案1】:

    你可以使用@Consumes注解:

    @PUT
    @Path("/")
    @Consumes(MediaType.APPLICATION_XML)
    @Produces(MediaType.APPLICATION_XML)
    TestChild addTestChild(TestChild testChild);
    

    【讨论】: