2

404 resource not found当 Sun 的 J2EE 自动创建的给定 .WAR 中的页面deploytool试图在同一个 .WAR 文件中加载 Servlet 时,最有可能导致错误的罪魁祸首是什么?
例如:

HTTP 状态 404 - /MyServlet/MyServlet

类型状态报告

消息/MyServlet/MyServlet

描述请求的资源 (/MyServlet/MyServlet) 不可用。


相关:其中,您希望有多少是特定于服务器的?例如:Sun Java Application Server vs Tomcat & Catalina

4

4 回答 4

5

您的 web.xml 中是否存在有效的“MyServlet”<servlet-mapping>?那是我过去的头号罪魁祸首

于 2008-09-15T20:47:56.067 回答
1

404 错误表示未找到请求的资源。正如 pkaeding 所暗示的,这可能是由于 web.xml 文件中的 servlet 映射不正确(或不存在)。Servlet 必须在 web.xml 文件中指定,不仅如此,它们还必须映射到特定的路径(“url-mapping”)。如果“MyServlet”servlet 存在,但没有映射到可以基于应用程序上下文根使用“/MyServlet/MyServlet”解析的路径,并且没有其他(即另一个 servlet 等)可以使用此路径解析,则应用程序服务器将抛出 404 说明没有任何内容映射到给定路径。

于 2008-09-15T20:50:39.913 回答
0

Servlet 映射是一个常见问题。但是,如果您的 web.xml 中有任何过滤器,那么它们也可能是罪魁祸首。要意识到的一件事是过滤器总是在任何 servlet 开始执行之前执行 doFilter 之前的代码。(技术上,过滤器在 doFilter 之后执行代码)在我们的代码中,我们创建了在某些情况下会返回 404 的过滤器。有时删除部分或全部过滤器映射将有助于发现它是否与过滤器映射有关。

于 2009-08-11T17:01:07.283 回答
0

我刚刚花了大约一个小时来解决这个问题。OSX 上的 Tomcat 5.5.27 工作得很好,直到我添加了另一个 servlet 和 servlet-mapping,此时一切都返回 404。我没有意识到,但是当我添加了一个新的 servlet/servlet-mapping对我将 servlet-mapping 放在 servlet 条目之前。这是一个容易犯的错误,尽管在不给出任何类似合理错误消息的情况下对整个应用程序进行限制似乎有点极端,但回想起来却是完全合理的。

于 2008-10-13T00:51:23.887 回答