2012-01-10 118 views

回答

3

你可以在帖子裏看到我們如何創建一個JX-RS web服務,它正在生成Google協議緩衝區作爲響應。源代碼可以at my blog

什麼我做的是將所述協議緩存對象轉換成字節數組從服務器側和發送是經由服務數組: 服務代碼是下面,填充對象,並把它在響應。

UserDTO.User user = UserDTO.User.newBuilder(). //protocol buffer object 
      setSessionId(id). 
      setName("l070020"). 
      build(); 
return Response.ok(user.toByteArray(),MediaType.APPLICATION_OCTET_STREAM).status(200).build(); 

協議緩衝區對象有能力解析和填充通過流填充協議緩衝區對象。 所以我用流進行數據通信。 在客戶端我正在連接到Web服務

HttpGet request = new HttpGet("http://localhost:8080/maven.work/service/mainServices/get_user"); 
request.addHeader("accept","application/octet-stream"); 
HttpResponse response = httpClient.execute(request); 

協議緩衝區已建成的方法來解析流,下面我從響應

User user = User.parseFrom(response.getEntity().getContent()); 

同樣解析流,您可以發送協議緩衝對象以字節數組的形式發送到服務器和服務器,可以從HTTP Servlet請求流中獲取它並像客戶端一樣解析它。

+1

Lone鏈接[被認爲是一個糟糕的答案](http://stackoverflow.com/faq#deletion),因爲它本身毫無意義,並且目標資源在將來不保證活躍。 [這將是最好的](http://meta.stackexchange.com/q/8259)在這裏包括答案的基本部分,並提供鏈接供參考。 – j0k 2012-11-26 08:36:53

+1

除了上面提到的j0k之外,請務必仔細閱讀[自助推廣常見問題](http://stackoverflow.com/faq#promotion)。另請注意,每次鏈接到您自己的網站/產品時,您都必須*發佈免責聲明。 – 2012-11-26 14:35:11

+0

在上面的鏈接中,我寫了完整的解決方案和代碼,但如果你們認爲帖子不能保證活着,我會在這裏放置代碼指南,並將鏈接作爲參考。謝謝指導我。我是新的在stackoverflow。 – 2012-11-28 05:55:15