正在再次创建JaxbContext对象

时间:2013-11-23 12:56:29

标签: rest jaxb marshalling unmarshalling

我正在调用REST API,如下所示

  String uri = "http://localhost:8080/jd/rest/emp/getEmp";
    EmpRequest request = new EmpRequest();
    //set id as 1 for OK response
    request.setId(2);
    request.setName("PK");
    try{
    Client client = Client.create();
    WebResource r=client.resource(uri);
    ClientResponse response = r.type(MediaType.APPLICATION_XML).post(ClientResponse.class,request );
    System.out.println(response.getStatus());
    if(response.getStatus() == 200){
        EmpResponse empResponse = response.getEntity(EmpResponse.class);
        System.out.println(empResponse.getId() + "::"+empResponse.getName());
    }else{
        ErrorResponse exc = response.getEntity(ErrorResponse.class);
        System.out.println(exc.getErrorCode());
        System.out.println(exc.getErrorId());
    }
    }catch(Exception e){
        System.out.println(e.getMessage());
    }

此处发送请求需要很长时间。我怀疑这是因为它每次都在制作一个新的JAXB对象。有没有办法在这种方法中使用相同的JAXB对象?

我已经把每个步骤之后的时间放在本地文件中了。这个步骤似乎需要花费最多的时间(差不多15秒)

  ClientResponse response = r.type(MediaType.APPLICATION_XML).post(ClientResponse.class,request );

1 个答案:

答案 0 :(得分:0)

建议您拨打网络服务,而不是您自己,您将无法控制它将如何(以及何时)作出反应。

这就是您致电

的原因
r.type(MediaType.APPLICATION_XML).post(ClientResponse.class, request);

需要很长时间。