2012-01-10 2 views

ответ

1

Для начала просто, вы можете написать простой сервлет и вернуть seralization ваших данных с Protobuf. Для REST я предпочитаю RESTeasy. Возможно, это помогает и дальше: Google protocol buffers and servlets

3

В сообщении вы можете увидеть, как мы можем создать веб-службу JX-RS, которая производит отклик в протоколе 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(); 

Объект буфера протокола имеет возможность разбора и заполнения заполнить буферный объект протокола через поток. Так что я использую поток для обмена данными. На стороне клиента я делаю подключение к вебу-службе

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

Одинокая ссылка [считается плохим ответом] (http://stackoverflow.com/faq#deletion), поскольку она бессмысленна сама по себе, и целевой ресурс не гарантированно будет в будущем. [Было бы желательно] (http://meta.stackexchange.com/q/8259) включить здесь основные части ответа и предоставить ссылку для справки. – j0k

+1

В дополнение к тому, что указано в j0k, пожалуйста, внимательно прочитайте [FAQ по Self-Promotion] (http://stackoverflow.com/faq#promotion). Также обратите внимание, что * требуется *, что вы публикуете отказ от ответственности каждый раз, когда вы ссылаетесь на свой собственный сайт/продукт. –

+0

На приведенной выше ссылке я написал полное решение и код, но если вы, ребята, думаете, что почта не будет гарантирована, я останусь здесь, и поставлю ссылку для ссылки. Спасибо за руководство. Я новичок в stackoverflow. –

Смежные вопросы