2012-01-10 7 views

Trả lời

1

Để bắt đầu đơn giản, bạn có thể viết một servlet đơn giản và trả lại seralization dữ liệu của bạn với protobuf. Đối với REST tôi thích RESTeasy. Có thể điều này sẽ giúp thêm: Google protocol buffers and servlets

3

Bạn có thể xem bên trong bài đăng cách chúng tôi có thể tạo dịch vụ web JX-RS đang tạo ra Buffer giao thức của Google để phản hồi. Mã nguồn có sẵn at my blog

những gì tôi đang làm là chuyển đổi đối tượng đệm giao thức thành mảng byte từ phía máy chủ và gửi là mảng qua dịch vụ: Mã dịch vụ bên dưới, điền đối tượng và đặt phản hồi.

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(); 

Đối tượng đệm giao thức có khả năng phân tích và điền đối tượng đệm giao thức qua luồng. Vì vậy, tôi đang sử dụng bằng luồng để truyền dữ liệu. Về phía khách hàng tôi đang thực hiện kết nối đến dịch vụ 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); 

Nghị định thư đệm đã được xây dựng trong phương pháp để phân tích dòng, dưới đây tôi đang phân tích dòng từ phản ứng

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

Tương tự như vậy bạn có thể gửi các bộ đệm giao thức đối tượng dưới dạng mảng byte tới máy chủ và máy chủ có thể lấy nó từ luồng Yêu cầu Servlet HTTP và phân tích cú pháp giống như trình khách đang thực hiện.

+1

Liên kết đơn lẻ được [coi là câu trả lời kém] (http://stackoverflow.com/faq#deletion) vì nó vô nghĩa bởi chính nó và tài nguyên đích không được đảm bảo sẽ còn sống trong tương lai. [Nó sẽ là thích hợp hơn] (http://meta.stackexchange.com/q/8259) để bao gồm các phần thiết yếu của câu trả lời ở đây, và cung cấp liên kết để tham khảo. – j0k

+1

Ngoài những gì j0k đã lưu ý ở trên, hãy chắc chắn đọc kỹ [FAQ on Self-Promotion] (http://stackoverflow.com/faq#promotion) một cách cẩn thận. Cũng lưu ý rằng nó là * bắt buộc * mà bạn đăng tuyên bố từ chối trách nhiệm mỗi lần bạn liên kết đến trang web/sản phẩm của riêng bạn. –

+0

Trên liên kết ở trên tôi đã viết giải pháp và mã hoàn chỉnh, Nhưng nếu các bạn nghĩ rằng bài viết không được đảm bảo sẽ còn sống, tôi sẽ đặt các dòng hướng dẫn mã ở đây và đặt liên kết để tham khảo. Cảm ơn bạn đã hướng dẫn tôi. tôi mới ở stackoverflow. –