Сервер не видит мой сервелет (ошибка 404)
В учебных целях осваиваю Maven и пытаюсь написать сервелет выводящий hello. В результате всегда 404 ошибка в браузере ввожу :localhost:8080/hello
код pom.xml :
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>example2</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>
</properties>
</project>
код hello.java:
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "hello", value = "/hello")
public class hello extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter printWriter = response.getWriter();
printWriter.write("Hello!");
printWriter.close();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
Server Output:
D:\Программы\apache-tomcat-9.0.52\bin\catalina.bat run
[2021-09-02 05:13:57,523] Artifact example2:war exploded: Waiting for server connection to start artifact deployment...
Using CATALINA_BASE: "C:\Users\Outland\AppData\Local\JetBrains\IntelliJIdea2021.2\tomcat\e379c33e-2828-4092-8d8e-2a76c798d0e1"
Using CATALINA_HOME: "D:\Џа®Ја ¬¬л\apache-tomcat-9.0.52"
Using CATALINA_TMPDIR: "D:\Џа®Ја ¬¬л\apache-tomcat-9.0.52\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk-16.0.1"
Using CLASSPATH: "D:\Џа®Ја ¬¬л\apache-tomcat-9.0.52\bin\bootstrap.jar;D:\Џа®Ја ¬¬л\apache-tomcat-9.0.52\bin\tomcat-juli.jar"
Using CATALINA_OPTS: ""
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
02-Sep-2021 17:13:57.962 WARNING [main] org.apache.catalina.startup.ClassLoaderFactory.validateFile Problem with directory [D:\Ïðîãðà ììû\apache-tomcat-9.0.52\lib], exists: [false], isDirectory: [false], canRead: [false]
02-Sep-2021 17:13:57.966 WARNING [main] org.apache.catalina.startup.ClassLoaderFactory.validateFile Problem with directory [D:\Ïðîãðà ììû\apache-tomcat-9.0.52\lib], exists: [false], isDirectory: [false], canRead: [false]
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.52
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jul 31 2021 04:12:17 UTC
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.52.0
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 10
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Версия ОС: 10.0
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Архитектура: amd64
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Program Files\Java\jdk-16.0.1
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Версия JVM: 16.0.1+9-24
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\Outland\AppData\Local\JetBrains\IntelliJIdea2021.2\tomcat\e379c33e-2828-4092-8d8e-2a76c798d0e1
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\Программы\apache-tomcat-9.0.52
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\Outland\AppData\Local\JetBrains\IntelliJIdea2021.2\tomcat\e379c33e-2828-4092-8d8e-2a76c798d0e1\conf\logging.properties
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.password.file=C:\Users\Outland\AppData\Local\JetBrains\IntelliJIdea2021.2\tomcat\e379c33e-2828-4092-8d8e-2a76c798d0e1\jmxremote.password
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.access.file=C:\Users\Outland\AppData\Local\JetBrains\IntelliJIdea2021.2\tomcat\e379c33e-2828-4092-8d8e-2a76c798d0e1\jmxremote.access
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\Outland\AppData\Local\JetBrains\IntelliJIdea2021.2\tomcat\e379c33e-2828-4092-8d8e-2a76c798d0e1
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=D:\Программы\apache-tomcat-9.0.52
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=D:\Программы\apache-tomcat-9.0.52\temp
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.30] using APR version [1.7.0].
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
02-Sep-2021 17:13:58.177 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
02-Sep-2021 17:13:58.193 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1k 25 Mar 2021]
02-Sep-2021 17:13:58.347 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
02-Sep-2021 17:13:58.378 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [362] milliseconds
02-Sep-2021 17:13:58.409 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
02-Sep-2021 17:13:58.409 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.52]
02-Sep-2021 17:13:58.409 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
02-Sep-2021 17:13:58.463 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [89] milliseconds
Connected to server
[2021-09-02 05:13:58,610] Artifact example2:war exploded: Artifact is being deployed, please wait...
[2021-09-02 05:13:58,964] Artifact example2:war exploded: Artifact is deployed successfully
[2021-09-02 05:13:58,964] Artifact example2:war exploded: Deploy took 354 milliseconds
02-Sep-2021 17:14:08.424 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Установка веб приложения в папку [D:\Программы\apache-tomcat-9.0.52\webapps\manager]
02-Sep-2021 17:14:08.478 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [D:\Программы\apache-tomcat-9.0.52\webapps\manager] has finished in [54] ms
Ответы (1 шт):
Автор решения: kyt3
→ Ссылка
попробуйте заменить value в аннотации @WebServlet на urlPatterns как в примере ниже:
@WebServlet(name = "hello", urlPatterns = {"/hello"})
