Google协议缓冲区和servlet

时间:2009-07-21 22:40:40

标签: java servlets protocol-buffers

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

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

2 个答案:

答案 0 :(得分:6)

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

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

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

我建议您查看Protocol Buffer servicesJava services generated code的文档以获取更多信息。您可以实现一个可以解决servlet的RpcChannel,或者让客户端直接进行HTTP发布。您可能在服务器端使用某种依赖注入来告诉servlet实现该服务的是什么。

答案 1 :(得分:-1)

HI,

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