0

我正在使用RestFul WebservicewithJBoss Server部署应用程序以接收JSONObject我的应用程序web service,以测试我是否已为其创建web service并编写了测试用例。现在JSONobject,当我将 json 对象传递给@post service称它为响应Null Pointer Exception,即使我尝试将字符串传递给它,它也会响应null值。我已经使用Annotations如下webservice

@consumes({Mediatype.APPLICATION_JSON})

@Consumes("application/json")

测试用例为:

    @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);
                 }
    }

任何人都可以指导我继续前进吗?

提前致谢

4

2 回答 2

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");
}

除了使用代码客户端,您还可以使用 add 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();
    }
于 2015-01-05T08:03:29.427 回答
0

您不需要创建 json 对象,只需传递字符串即可。

你应该

 ClientResponse response = resource.type(MediaType.APPLICATION_JSON)
                                   .accept(MediaType.APPLICATION_JSON)
                                   .post(ClientResponse.class, msg);
于 2013-01-03T15:17:08.007 回答