2013-11-23 51 views
1

我調用REST API如下,的JAXBContext對象再次

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); 
+0

你能告訴我們web服務代碼嗎? –

+0

什麼是「EmpRequest」和「EmpResponse」? –

+0

你的意思是服務器端?我正在使用第三方網絡服務。 – sabu

回答

0

建議你調用Web服務,你不擁有,你將無法控制如何(何時)會發生反應。

這將是爲什麼你的電話

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

需要很長的時間的原因。

相關問題