Может RestEasy сериализует POJO для метода @GET?

Мы используем Resteasy и не можем понять, как вызывать некоторые методы @GET.

Если интерфейс для метод имеет только простые параметры, это не проблема. Пример:

@GET
@Path("/test/{myparam}")
public FacetQueryResultImpl testMethod(@PathParam("myparam")String myparam);

Но если мы попытаемся использовать POJO в качестве параметра, кажется, что RestEasy не сможет сериализовать его как параметры строки запроса. Пример:

@GET
@Path("/testGet")
public FacetQueryResultImpl testMethod(ParamPojo myparam);

или

@GET
@Path("/testGet")
public FacetQueryResultImpl testMethod(@QueryParam("myparam")ParamPojo myparam);

(with, ParamPojo.java:)

public class ParamPojo
{
    private String name;
    private String description;
    (...)
}

Когда мы пытаемся это сделать, иногда службы не обнаруживаются, а иногда мы получаем сообщение «Запрос GET не может иметь тело». исключение.

Используя @POST, мы можем использовать POJO с параметром, но некоторые из наших методов ничего не изменяют на сервере и поэтому должны использовать @GET.

Обходной путь - «взорвать» ParamPojo и использовать все его свойства как отдельные параметры для метода. Но это убирает "Easy" часть "RestEasy", не так ли?

8
задан Martin Matula 22 November 2011 в 23:09
поделиться