Мы используем 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", не так ли?