Java EE. Create Jersey Servlet without web.xml.

Необходимость объявлять добавляемые сервлеты в web.xml отпала еще в далеком Java EE 6. На данный момент уже вышла Java EE 8, а на просторах интернета до сих пор можно встретить туториалы с созданием сервлетов, путем добавления объявлений сервлетов в файл web.xml. В нашем примере используется jdk 11, Apache Tomcat 8.53

Необходимые зависимости:

<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.27</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.27</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.bundles</groupId>
<artifactId>jaxrs-ri</artifactId>
<version>2.27</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId&amp;gt;
<version>gt;2.27</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.27</version>
</dependency>

 

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("api")
public class WebApiApp extends Application {

}

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
@Path("post")
public class Post {

    @POST
    @Path("stop")
    @Produces("application/json; charset=UTF-8")
    @Consumes("application/json; charset=UTF-8")
    public Response dayv2(String data){

    }
}

 

Родительский путь указывается аннотацией @ApplicationPath, путь к сервлету через аннотацию @Path. Вот и все, довольно просто. Гораздо легче, чем постоянно следить за фалом web.xml

Если после запуска TOMCAT у вас появляется в логах запись: org.apache.catalina.core.StandardContext.loadOnStartup Servlet, проверьте зависимости.

Leave a Reply

Please disable your adblocker or whitelist this site!