| # Hello World Example using Servlets |
| |
| This example uses Java Servlets instead of Netty for the gRPC server. This example requires `grpc-java` |
| and `protoc-gen-grpc-java` to already be built. You are strongly encouraged to check out a git release |
| tag, since these builds will already be available. |
| |
| ```bash |
| git checkout v<major>.<minor>.<patch> |
| ``` |
| Otherwise, you must follow [COMPILING](../../COMPILING.md). |
| |
| To build the example, |
| |
| 1. **[Install gRPC Java library SNAPSHOT locally, including code generation plugin](../../COMPILING.md) (Only need this step for non-released versions, e.g. master HEAD).** |
| |
| 2. In this directory, build the war file |
| ```bash |
| $ ../gradlew war |
| ``` |
| |
| To run this, deploy the war, now found in `build/libs/example-servlet.war` to your choice of servlet |
| container. Note that this container must support the Servlet 4.0 spec, for this particular example must |
| use `javax.servlet` packages instead of the more modern `jakarta.servlet`, though there is a `grpc-servlet-jakarta` |
| artifact that can be used for Jakarta support. Be sure to enable http/2 support in the servlet container, |
| or clients will not be able to connect. |
| |
| To test that this is working properly, build the HelloWorldClient example and direct it to connect to your |
| http/2 server. From the parent directory: |
| |
| 1. Build the executables: |
| ```bash |
| $ ../gradlew installDist |
| ``` |
| 2. Run the client app, specifying the name to say hello to and the server's address: |
| ```bash |
| $ ./build/install/examples/bin/hello-world-client World localhost:8080 |
| ``` |