@ExperimentalApi(value="https://github.com/grpc/grpc-java/issues/5066") public final class ServletAdapter extends Object
HttpServletRequest into gRPC request and lets a gRPC server
process it, and transforms the gRPC response into HttpServletResponse. An adapter can be
instantiated by ServletServerBuilder.buildServletAdapter().
In a servlet, calling doPost(HttpServletRequest, HttpServletResponse) inside HttpServlet.doPost(HttpServletRequest, HttpServletResponse) makes the servlet
backed by the gRPC server associated with the adapter. The servlet must support Asynchronous
Processing and must be deployed to a container that supports servlet 4.0 and enables HTTP/2.
The API is experimental. The authors would like to know more about the real usecases. Users are welcome to provide feedback by commenting on the tracking issue.
| Modifier and Type | Method and Description |
|---|---|
void |
destroy()
Call this method when the adapter is no longer needed.
|
void |
doGet(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Call this method inside
HttpServlet.doGet(HttpServletRequest,
HttpServletResponse) to serve gRPC GET request. |
void |
doPost(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Call this method inside
HttpServlet.doPost(HttpServletRequest,
HttpServletResponse) to serve gRPC POST request. |
static boolean |
isGrpc(javax.servlet.http.HttpServletRequest request)
Checks whether an incoming
HttpServletRequest may come from a gRPC client. |
public void doGet(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
throws IOException
HttpServlet.doGet(HttpServletRequest,
HttpServletResponse) to serve gRPC GET request.
This method is currently not implemented.
Note that in rare case gRPC client sends GET requests.
Do not modify req and resp before or after calling this method. However,
calling resp.setBufferSize() before invocation is allowed.
IOExceptionpublic void doPost(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
throws IOException
HttpServlet.doPost(HttpServletRequest,
HttpServletResponse) to serve gRPC POST request.
Do not modify req and resp before or after calling this method. However,
calling resp.setBufferSize() before invocation is allowed.
IOExceptionpublic void destroy()
public static boolean isGrpc(javax.servlet.http.HttpServletRequest request)
HttpServletRequest may come from a gRPC client.