我正在使用RestFul Webservice
与JBoss Server
部署应用以接收JSONObject
到web service
,以测试我已创建web service
和为它编写测试用例。现在我把JSONobject
从测试用例传递到Web服务,当我将json对象传递给@post service
时,它会响应Null Pointer Exception
,即使我尝试过将字符串传递给它它会响应null
个值。
我在Annotations
webservice
,如下所示
@consumes({Mediatype.APPLICATION_JSON})
@Consumes("application/json")
测试用例As:
@Test
public void testgetmsg() {
String msg = "{\"patient\":[{\"id\":\"6\",\"title\":\"Test\"}]}";
try {
JSONObject obj = new JSONObject(new JSONTokener(msg));
WebResource resource = client.resource( "https://localhost:8443/../../resources/create");
ClientResponse response = resource.type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).
entity(obj).post(ClientResponse.class,JSONObject.class);
}
}
任何人都能引导我继续前进吗?
先谢谢
答案 0 :(得分:0)
您不需要创建json对象,只需传递字符串即可。
你应该
ClientResponse response = resource.type(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.post(ClientResponse.class, msg);
答案 1 :(得分:0)
//CLIENT
public static void createStudent() {
String input = "{\"id\":12,\"firstName\":\"Fade To Black\",\"lastName\":\"Joy\"}";
ClientResponse response = service.path("class/post")
.type("application/json").post(ClientResponse.class, input);
System.out.println("Output from Server .... \n");
String output = response.getEntity(String.class);
System.out.println(output);
System.out.println(response.getStatus()+ "OK");
}
而不是使用代码客户端,您可以使用添加on firefox(POSTER)将值传递为json或formparam ......
// create new student SERVER
//class
@POST
@Path("post")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response createStudent(Student st) {
// add new student
StudentDAO.instance.getModelStudent().put("8", st);
// response status code
return Response.status(200).entity(st).build();
}