Как передать пользовательский тип в качестве параметра в службу RestEasy? - PullRequest
2 голосов
/ 04 июля 2011

Мне стыдно спрашивать: а как правильно комбинировать аннотации для метода обслуживания, который будет отменять пользовательский тип?

Я могу успешно генерировать json и xml из методов, которые возвращают пользовательские типы (с аннотациями jaxb), но мне не удалось превратить эти типы в параметры метода. Кажется, что все примеры в Интернете передают простые типы, такие как строки.

Документация утверждает, что resteasy может разбить json и xml на аннотированные типы, но как? Для следующей подписи требуется объект со строковым параметром, принимающий конструктор, а это не то, что я ищу.

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

TestChild имеет аннотации JAXB, но я хочу, чтобы resteasy разархивировал входящий xml для экземпляра этого объекта, чего не происходит. Я что-то здесь упускаю?

1 Ответ

3 голосов
/ 04 июля 2011

Вы можете использовать аннотацию @Consumes:

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