Quick Start:Using Jetty as Embedded Server with Spring Boot

Here we will show you an example - Using Jetty as Embedded Server with Spring Boot
Why embedded server?
For a Spring Boot Application, you can generate an application jar which contains Embedded Tomcat or jetty. You can run a web application as a normal Java application!
1)Maven/Dependency Management [pom.xml] 
Remove the existing tomcat dependency on spring-boot-starter-web and added jetty dependency
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.1.1.RELEASE</version>
 </parent>
 <groupId>com.knowledgefactory</groupId>
 <artifactId>springboot-jetty-embeddedserver</artifactId>
 <packaging>jar</packaging>
 <version>0.0.1-SNAPSHOT</version>
 <name>springboot-jetty-embeddedserver</name>
 <properties>
  <java.version>1.8</java.version>
 </properties>
 <dependencies>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter</artifactId>
  </dependency>
  <!-- spring mvc, rest -->
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
   <exclusions>
    <exclusion>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-tomcat</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <!-- embedded jetty-->
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jetty</artifactId>
  </dependency>
 </dependencies>
 <build>
  <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   </plugin>
  </plugins>
 </build>
 <url>www.knowledgefactory.net</url>
</project>
2)Test Controller
package com.knowledgefactory.knowledgefactorydemo;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Controller {
 @RequestMapping(value = "/hello", method = RequestMethod.GET)
 public ResponseEntity<String> listAllUsers() {
    return new ResponseEntity<String>("Greetings from knowledgefactory", HttpStatus.OK);
 }
}
3)Spring Boot -Main Class
package com.knowledgefactory.knowledgefactorydemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class KnowledgefactorydemoApplication {
  public static void main(String[] args) {
         SpringApplication.run(KnowledgefactorydemoApplication.class, args);
     }
}
4)Run
$ mvn spring-boot:run
5)Test
http://localhost:8080/hello


Comments