我通过Jax-RS和CXF实现了一个休息Web服务。静止服务的输入参数中的固定名称
@Path("/StudentServices")
@Produces({"application/json"})
public class Student
{
@POST
@Path("/save")
public String persist(@QueryParam("StudentName") String name,
@QueryParam("StudentAge") String age)
{
System.out.println("*******************************");
System.out.println(" Incomming student with = " + name + " " + age);
System.out.println("*******************************");
return "Hello " + name;
}
}
其实,我要打电话与网址的服务:localhost:9000/StudentServices/save
并与主体消息JSON:{ “StudentName”: “约翰”, “StudentAge”: “30”}
但是当请求到达persist方法时,其输入为空或空。我用其他方式进行了检查,如Jackson注释,JAXB注释但没有人正常工作。
此外,我想修复参数的名称,当我的服务有输入基元类型和字符串,因为当我使用一个类输入时,它工作正常。
谢谢。你的意思是没有别的办法定义POJO? – MJM
您可以使用'javax.json.JsonObject'作为泛型类:'public String persist(JsonObject data)',并通过使用其诸如'.getString(“StudentName”)''的方法之一来访问数据以获取JSON数据为StudentName作为字符串。 –
我无法使用公共'String persist(JsonObject数据)',因为当我发送请求时,服务器抛出一个异常:'javax.ws.rs.WebApplicationException:HTTP 415 Unsupported Media Type'。我的方法签名是:'@POST @Path(“/ call2”) public void call(javax.json。JsonObject json)' – MJM