Java Servlet 404错误

时间:2008-09-15 20:45:42

标签: java web-applications servlets java-ee

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

  

HTTP状态404 - / MyServlet / MyServlet

类型状态报告

消息 / MyServlet / MyServlet

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

<小时/> 相关:其中,您希望服务器特定的数量是多少?例如: Sun Java Application Server vs Tomcat&amp; Catalina

4 个答案:

答案 0 :(得分:5)

是否有有效的&lt; servlet-mapping&gt;你的web.xml中的'MyServlet'?这是我过去的头号罪魁祸首

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我花了大约一个小时把头发拉出来解决这个问题。 OSX上的Tomcat 5.5.27工作正常,直到我添加了另一个servlet和servlet-mapping,此时所有都返回了404.我没有意识到,但是当我添加时一个新的servlet / servlet-mapping对我将servlet-mapping放在servlet条目之前。这是一个容易犯的错误,尽管在没有给出任何类似合理错误信息的情况下对整个应用程序进行膝盖封顶似乎有点极端,但回想起来它是完全合理的。

答案 3 :(得分:0)

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