我想知道如何使用谷歌协议缓冲区接受请求并将响应发送回客户端?我正在考虑编写一个将接受请求的servlet.以下思路是实现此目的的正确方法:1.有一个.proto文件,它是传入请求的消息定义.2.编写一个接受此请求的servlet,执行各种任务,如查询数据库,然后发送响应.此响应是否需要单独的.proto消息定义以及构成响应的所有字段?3.客户端是否只调用我的servlet的doGet()方法并传递请求,然后应该将响应作为protobuff对象返回?
任何建议或想法将非常感谢.
通常,您需要请求消息和响应消息,是的.您可能还需要一个方法名称来描述操作 - 这肯定是内置PB服务的工作方式.
客户端不会调用doGet() - 它会发出请求(可能是POST而不是GET),你的servlet会收到它.
现在,理想情况下,您可以拥有一个通用的"ProtocolBufferServlet",它可以通过将请求交给实现适当接口的服务来为请求提供服务.
我建议您查看协议缓冲区服务的文档和Java服务生成的代码以获取更多信息.您可以实现一个RpcChannel
可以在servlet上运行的服务器,或者让客户端直接进行HTTP发布.您可能在服务器端使用某种依赖注入来告诉servlet实现该服务的是什么.