Не находит сервлет
Нужно создать веб приложение но почему то не видит сервлет код сервлета:
package com.example.demo;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet {
private String message;
public void init() {
message = "Hello World!";
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
// Hello
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>" + message + "</h1>");
out.println("</body></html>");
}
public void destroy() {
}
}
web.xml:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
</web-app>
Ответы (1 шт):
Автор решения: Anastasiya
→ Ссылка
Попробуйте:
- Используя web.xml маппинг (не аннотации), заменить версию сервлетов на 4.0.0 и заменить плагин мавен на:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
Если не сработает, плагин удали и удали строку из pom ->
<packaging>war</packaging>- следите за тем чтобы папочка веб подсвечивалась синим кружкомЕсли и оно не сработает, аннотацию замени на просто
@WebServlet("/hello-sevlet")
Если синий кружок потух, зайдите в Project structure - > Modules -> выбрать модуль\папку в которой ваш веб -> Web Resource Directory (на скрине красненьким светится) и указать путь к папке web (где лежит WEB INF)


