How to Start Embedded HTTP Jersey server during Java Application Startup

06:03:00 , , 0 Comments

Jersey Embedded HTTP Server Example
Sometime back I’ve written a tutorial on How to build RESTful Service with Java using JAX-RS and Jersey. After all detailed steps you have to deploy your project to Tomcat Web Server and you should be all good. With that tutorial you should be able to simply create RESTFul service in ~20 mins. But what about doing it in ~5 mins? Also sometimes it’s very difficult to setup Tomcat for your web application.
There are number of reasons:
  1. You may need to have Tomcat binaries copy over to development environment.
  2. If you don’t have all setup correctly configured then your Tomcat application may not work.
  3. You must have to export your project as .war project
  4. What if you don’t want to deploy your application on Tomcat and run simple .jar?
  5. With .jar project – how will you start http server? Will your application accepts incoming REST call?

Extra: How to add CORS Filter to your Jersey Web Application?

You must add Cross-origin resource sharing to your Web Jersey Application. Please follow this tutorial for the same: http://crunfy.me/1DZIui5
Well, there is a simple solution. There is a way to create a very basic HTTP server (supporting only GET/POST) in Java using just the Java SE API, without writing code to manually parse HTTP requests and manually format HTTP responses
Using com.sun.net.httpserver.HttpServer, we should be able to achieve all above.

Let’s get started:

Step 1:

Create new Java project “CrunchifyJerseyEmbeddedHTTPServer“.
Java-Project-CrunchifyJerseyEmbeddedHTTPServer

Step 2:

Convert it to Maven Project. This will simplify our life for adding dependencies. Please follow this tutorial to convert existing Java Project to Maven Project.

Step 3:

In this project we just need to one jersey-server dependency.
Jersey Server - Maven Dependency

Step 4:

Create JerseyEmbeddedHTTPServerCrunchify.java under “com.crunchify.tutorial” package.

Step 5:

Create your REST API. Create java class CrunchifyAPI.java under same package “com.crunchify.tutorial

Step 6:

And that’s it. Now right click on JerseyEmbeddedHTTPServerCrunchify.java and “Run it as Java Application“.

Step 7:

Validate Result. Visit this URL: http://localhost:8085/api and you should see result on browser.
Jersey HTTP Server Browser Response
Hope you enjoy this tutorial. Need to share any comment? I’m here to listen. Thanks.
Have anything to add to this article? Please chime in and join the conversion.

0 comments :