Java-сервлет не распознает мой маршрут/классJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java-сервлет не распознает мой маршрут/класс

Сообщение Anonymous »

Я запускаю сервлет Java с использованием JDK 17, Tomcat 9.0 и Maven на VSCode. Я столкнулся с проблемой: когда я создаю новый класс для использования нового маршрута, Tomcat возвращает мне Ошибку 404, сообщающую, что "Исходный сервер не нашел текущего представления для целевого объекта. ресурс или не желает раскрывать его существование" даже несмотря на то, что я добавил аннотацию @WebServlet с указанным сервлетом маршрута (в контексте мне следует получить доступ к http://localhost:8080 /server/servlet).
Это структура папок проекта:

Код: Выделить всё

src
└── main
├── java
│   └── com
│       └── example
│           └── servlet
│               └── MyServlet.java
└── webapp
├── index.jsp
└── WEB-INF
├── views
│   └── view.jsp
└── web.xml
Когда он скомпилирован в папку /target, он представляется следующим образом:

Код: Выделить всё

target
├── classes
│   └── com
│       └── example
│           └── servlet
│               └── MyServlet.class
├── generated-sources
│   └── annotations
├── maven-archiver
│   └── pom.properties
├── maven-status
│   └── maven-compiler-plugin
│       └── compile
│           └── default-compile
│               ├── createdFiles.lst
│               └── inputFiles.lst
├── server
│   ├── index.jsp
│   ├── META-INF
│   └── WEB-INF
│       ├── classes
│       │   └── com
│       │       └── example
│       │           └── servlet
│       │               └── MyServlet.class
│       ├── views
│       │   └── view.jsp
│       └── web.xml
└── server.war
Я пытался сопоставить маршрут сервлета в web.xml, но Tomcat не распознал класс (хотя я сопоставил класс прямо здесь). Поэтому я не знаю точно, в чем проблема.
pom.xml:

Код: Выделить всё


xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

com.example
server
1.0-SNAPSHOT
war

server Maven Webapp

http://www.example.com


UTF-8
17
17
17





jakarta.servlet
jakarta.servlet-api
5.0.0
provided



junit
junit
4.11
test




server



maven-clean-plugin
3.1.0



maven-resources-plugin
3.0.2


maven-compiler-plugin
3.8.0


maven-surefire-plugin
2.22.1


maven-war-plugin
3.2.2


maven-install-plugin
2.5.2


maven-deploy-plugin
2.8.2





web.xml:

Код: Выделить всё


  Welcome to Tomcat 9

MyServlet.java:

Код: Выделить всё

package com.example.servlet;

import java.io.IOException;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/servlet")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(
HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

request.getRequestDispatcher("/views/view.jsp").forward(request, response);

// even when it is tested individually (not sending to a JSP file, it does not work
}
}

Код: Выделить всё

INFO: Starting service [Catalina]
[apache-tomcat-9.0.88]: May 05, 2024 10:15:56 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/9.0.88]
[apache-tomcat-9.0.88]: May 05, 2024 10:15:56 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Web application installation directory [/home/santiago/.config/Code/User/workspaceStorage/d8ec3ec1ee17b60fa552c7bbc55f6194/adashen.vscode-tomcat/tomcat/apache-tomcat-9.0.88/webapps/server]
[apache-tomcat-9.0.88]: May 05, 2024 10:15:56 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory [/home/santiago/.config/Code/User/workspaceStorage/d8ec3ec1ee17b60fa552c7bbc55f6194/adashen.vscode-tomcat/tomcat/apache-tomcat-9.0.88/webapps/server] has finished in [167] ms
[apache-tomcat-9.0.88]: May 05, 2024 10:15:56 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Web application installation directory [/home/santiago/.config/Code/User/workspaceStorage/d8ec3ec1ee17b60fa552c7bbc55f6194/adashen.vscode-tomcat/tomcat/apache-tomcat-9.0.88/webapps/ROOT]
[apache-tomcat-9.0.88]: May 05, 2024 10:15:56 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory [/home/santiago/.config/Code/User/workspaceStorage/d8ec3ec1ee17b60fa552c7bbc55f6194/adashen.vscode-tomcat/tomcat/apache-tomcat-9.0.88/webapps/ROOT] has finished in [12] ms
[apache-tomcat-9.0.88]: May 05, 2024 10:15:56 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
[apache-tomcat-9.0.88]: May 05, 2024 10:15:56 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in [223] milliseconds
Чего мне не хватает, чтобы новый маршрут сервлета работал правильно?

Подробнее здесь: https://stackoverflow.com/questions/784 ... oute-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»