Необходимость объявлять добавляемые сервлеты в 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&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, проверьте зависимости.