In this tutorial we will create a simple HTTP server that sends a “Hello World!” greeting. Using DataKernel
HttpServerLauncher, you can
write a full-functioning server in around 10 lines of code.
Simply enter the following command in the terminal:
The project will be automatically generated on your machine. Open WebApp and run its main method. Then open your favourite browser and go to localhost:8080.
Clone DataKernel locally and import it as a Maven project. Check out branch v3.1. Before running the example, build the project (Ctrl + F9 for IntelliJ IDEA).
Then open HttpHelloWorldExample class, which is located at datakernel -> examples -> tutorials -> getting-started and run its main method. Open your favourite browser and go to localhost:8080.
First, create a folder for application and build an appropriate project structure:
Next, you need to integrate DataKernel in your project. There are two ways to do it:
pom.xml file in the following way:
Another way to integrate DataKernel is to clone DK, import it as a Maven project, check out branch v3.1 and run the following script in project directory:
Next, configure your
pom.xml file like in the example above.
Make sure that your project SDK is set to 1.8+.
After you integrate DataKernel in your project in one of the suggested ways, write down the following code to
Let’s take a look at how it works.
First, we extend HttpHelloWorldExample from HttpServerLauncher to handle the management of the application’s lifecycle. In this example, the only important thing to know about the superclass is that it implements launch method for starting our server.
Next, we provide an AsyncServlet which receives a HttpRequest from clients, creates a HttpResponse and sends it.
@Provides annotation means that this method is available for binding as the root HTTP endpoint listener (it must happen
when dependency injection process is active).
To define processing of received requests, we override the AsyncServlet.serve method with lambda. As you can
see, we are using Promises here, creating a promise of HttpResponse with code
200 and “Hello World!” body. DataKernel is fully asynchronous, so our HTTP Servlets are asynchronous too.
Finally, we define main method and launch our server with launch method. Here’s its step-by-step explanation: it injects dependencies, starts the application, runs it and, finally, stops it.
Now, let’s test the application. First, run HttpHelloWorldExample.main, then open your favourite browser and go to
You will receive a
Hello World! message processed by the server. Congratulations, you’ve just created your first
To make DataKernel more developer-friendly, we’ve created dozens of tutorials and examples of different scales, representing most of the framework’s capabilities. Click “Next” to get to the next tutorial. You can also explore our docs first.