Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Servlet-错误404未找到所需资源-我可以';我找不到错误_Java_Jsp_Tomcat_Servlets - Fatal编程技术网

Java Servlet-错误404未找到所需资源-我可以';我找不到错误

Java Servlet-错误404未找到所需资源-我可以';我找不到错误,java,jsp,tomcat,servlets,Java,Jsp,Tomcat,Servlets,我有一个JSP中的web应用程序。我对计算机进行了更改,并将我的eclipse项目迁移到新的计算机上。在旧版本中,我有Tomcat 9,现在我有Tomcat 10。当我将所有内容发送到新计算机时,我没有对代码进行任何更改 当我运行应用程序并搜索第一个servlet时,它找不到它,它向我发送了一个错误: HTTP状态404-未找到 状态报告类型 消息所需资源[/WebProject/LoginServlet]不可用 说明所需资源不可用。 Apache Tomcat/10.0.2 值得一提的是,我没

我有一个JSP中的web应用程序。我对计算机进行了更改,并将我的eclipse项目迁移到新的计算机上。在旧版本中,我有Tomcat 9,现在我有Tomcat 10。当我将所有内容发送到新计算机时,我没有对代码进行任何更改

当我运行应用程序并搜索第一个servlet时,它找不到它,它向我发送了一个错误:

HTTP状态404-未找到
状态报告类型
消息所需资源[/WebProject/LoginServlet]不可用
说明所需资源不可用。
Apache Tomcat/10.0.2

值得一提的是,我没有使用实现描述符,而是使用@WebServlet的注释

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
* Servlet implementation class LoginServlet
*/
@SuppressWarnings("serial")
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
...my content...
}
我在另一个测试项目中重写了应用程序的一部分,因为我认为在Tomcat版本9和10之间可能会有一些变化,但是结果是一样的。虽然在使用注释时,我似乎必须定义默认情况下servlet的位置,但我不确定在哪里可以配置它


有谁能帮助或指导我解决这个问题吗?

您的问题与中的相同,尽管您有不同的症状

Tomcat实现了来自的标准,出于版权原因,它有一个非常突破性的变化:所有API都将名称空间从
javax.*
更改为
jakarta.*
。服务器扫描类路径以查找
jakarta.servlet.WebServlet
注释,因此它忽略
javax.servlet.WebServlet
注释

您有两种解决方案之一:

  • 继续使用Tomcat 9:我相信它将在很长一段时间内得到支持,以及所有使用
    javax.*
    前缀的库
  • 在Eclipse中,用Tomcat的10替换正在编写代码的运行时,并更新导入类的前缀。还有一种方法可以帮你

这是否回答了您的问题?这正是我10分钟前读到的。它解决了这个问题!非常感谢!