2009-07-21 3 views
1

Мне интересно, как я могу использовать буферы протокола google для принятия запроса и отправки ответа клиенту? Я думаю о написании сервлета, который примет запрос. Является следующим следствием правильного способа реализации этого: 1. Имейте файл .proto, который является определением сообщения для входящего запроса. 2. Напишите сервлет, который принимает этот запрос, выполняет различные задачи, такие как запрос базы данных , а затем отправляет ответ. Будет ли этот ответ требовать отдельного определения сообщения .proto со всеми полями, которые составляют ответ? 3. Будет ли клиент просто ссылаться на метод doGet() моего сервлета и передать запрос, он должен затем вернуть ответ в качестве объекта protobuff?Буферы и сервлеты протокола Google

Любое предложение или идея будут очень оценены.

ответ

-1

HI,

У меня есть это. В итоге я отправил HTTP-запрос в качестве сообщения в свой сервлет. Я смог взять буфер протокола запроса, прочитать запрос, выполнить некоторую обработку и затем отправить ответ. Это было действительно очень просто, как только я начал работать. Мы использовали файл .proto для определения структуры запроса и ответа.

+3

Я рад, что это сработало, но это не объясняет, как это сделать. – Tarelli

+0

Просто вставьте образец кода из сервлета – kyunez

5

Обычно вам требуется сообщение с запросом и ответное сообщение, да. Вероятно, вам также понадобится имя метода для описания действия - это, безусловно, то, как работают встроенные службы PB.

Клиент не будет вызывать doGet() - он сделает запрос (возможно, POST, а не GET), и ваш сервлет получит его.

Теперь у вас может быть общий «ProtocolBufferServlet», который может обслуживать запросы, передавая их службам, реализующим соответствующие интерфейсы.

Предлагаю вам ознакомиться с документацией для Protocol Buffer services и Java services generated code для получения дополнительной информации. Вы можете реализовать RpcChannel, который работал над сервлетами, или заставить клиента напрямую отправлять HTTP-сообщение. Вероятно, вы, вероятно, используете инъекцию зависимостей на стороне сервера, чтобы сообщить сервле, что было реализовано службой.

+0

Будет ли это подходящей реализацией для протокола Buffer? Я не уверен на 100%, что я новичок в этом. Разве протокол не идеально подходит для отправки сообщений от процесса к процессу, где вы контролируете как клиентские, так и серверные концы? Поэтому наличие вашего веб-приложения HTTP -> Protocol Buffer для меня не имеет смысла. извините –

+0

@Peter: Сервлеты не должны обслуживать HTML. Веб-сервисы могут быть реализованы с помощью сервлетов, и они могут, в свою очередь, использовать протокольные буферы. Что заставляет вас думать, что OP * не * контролирует как клиент, так и сервер, или что он, по крайней мере, не может диктовать, что клиент должен быть написан для публикации/использования буферов протокола. –

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

  • Нет связанных вопросов^_^