私は、パラメータ名と値を含むマップをGET Webターゲットに渡す方法を探しています。私はRESTEasyが自分のマップをURLクエリのパラメータリストに変換することを期待しています。しかし、RESTEasyは例外としてCaused by: javax.ws.rs.ProcessingException: RESTEASY004565: A GET request cannot have a body.
をスローします。 RESTEasyにこのマップをURLクエリパラメータに変換するように指示するにはどうすればよいですか?これは、使用されRESTEasyプロキシクライアントを使用してクエリparamsマップを送信する方法
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
public interface ExampleClient {
@GET
@Path("/example/{name}")
@Produces(MediaType.APPLICATION_JSON)
Object getObject(@PathParam("name") String name, MultivaluedMap<String, String> multiValueMap);
}
:
この
がプロキシインタフェースであるRESTEasyのソースコードに掘り下げ時間後@Controller
public class ExampleController {
@Inject
ExampleClient exampleClient; // injected correctly by spring DI
// this runs inside a spring controller
public String action(String objectName) {
MultivaluedMap<String, String> params = new MultivaluedHashMap<>();
// in the real code I get the params and values from a DB
params.add("foo", "bar")
params.add("jar", "car")
//.. keep adding
exampleClient.getObject(objectName, params); // throws exception
}
}