Google协议缓冲区和servlet

我想知道如何使用谷歌协议缓冲区接受请求并将响应发送回客户端? 我正在考虑编写一个将接受请求的servlet。 以下思路是实现此目的的正确方法:1。有一个.proto文件,它是传入请求的消息定义。 2.编写一个接受此请求的servlet,执行各种任务,如查询数据库,然后发送响应。 此响应是否需要单独的.proto消息定义以及构成响应的所有字段? 3.客户端是否只调用我的servlet的doGet()方法并传递请求,然后它应该作为protobuff对象返回响应?

任何建议或想法将非常感谢。

通常,您需要请求消息和响应消息,是的。 您可能还需要一个方法名称来描述操作 – 这肯定是内置PB服务的工作方式。

客户端不会调用doGet() – 它会发出请求(可能是POST而不是GET),你的servlet会收到它。

现在,理想情况下,您可以拥有一个通用的“ProtocolBufferServlet”,它可以通过将请求交给实现适当接口的服务来为请求提供服务。

我建议您查看协议缓冲区服务的文档和Java服务生成的代码以获取更多信息。 您可以实现一个可以在servlet上运行的RpcChannel ,或者让客户端直接进行HTTP发布。 您可能在服务器端使用某种dependency injection来告诉servlet实现该服务的是什么。

HI,

我有这个并且正在运行。 我最后将一个http请求作为post发布到我的servlet。 我能够获取请求协议缓冲区,读取请求,进行一些处理,然后发回响应。 一旦我开始工作,它实际上非常简单。 我们使用1 .proto文件来定义请求和响应消息结构。