您对@PathParam的使用不正确。它不符合javadoc
此处记录的这些要求。我相信您只想发布JSON实体。您可以在资源方法中解决此问题,以接受JSON实体。
@Path("/hello")public class Hello { @POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public JSonObject sayPlainTextHello(JSonObject inputJsonObj) throws Exception { String input = (String) inputJsonObj.get("input"); String output = "The input you sent is :" + input; JSonObject outputJsonObj = new JSonObject(); outputJsonObj.put("output", output); return outputJsonObj; }}并且,您的客户端代码应如下所示:
ClientConfig config = new DefaultClientConfig(); Client client = Client.create(config); client.addFilter(new LoggingFilter()); WebResource service = client.resource(getbaseURI()); JSonObject inputJsonObj = new JSonObject(); inputJsonObj.put("input", "Value"); System.out.println(service.path("rest").path("hello").accept(MediaType.APPLICATION_JSON).post(JSONObject.class, inputJsonObj));


