HTTP状态404,请求的资源不可用。我做错了什么? Tomcat 6.0

时间:2013-06-14 10:16:47

标签: java servlets web-applications

我的servlet应用程序是

package p1;
import javax.servlet.*;
import java.io.*;

public class MyServ extends GenericServlet{
 public void init(ServletConfig con){
    System.out.println("INIT");
 }

 public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException{
    PrintWriter pw=res.getWriter();
    pw.println("HELLO");
    pw.close();
 }
}

和我的网站。

<web-app>
 <servlet>
  <servlet-name>sai</servlet-name>
  <servlet-class>p1.MyServ</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>sai</servlet-nsame>
  <url-pattern>/abc</url-pattern>
</servlet-mapping>
</web-app>

我已将WEB-INF文件夹粘贴到tomcat 6.0的webapp文件夹中。 WEB-INF文件夹包含类和web.xml文件。 classes文件夹包含我的java程序包。当我尝试在浏览器中运行我的servlet时显示

HTTP状态404 - 类型状态报告 消息描述请求的资源不可用。

我正在做的错误是什么?

4 个答案:

答案 0 :(得分:1)

您必须重新启动服务器才能应用web.xml更改。确保已重新启动服务器。

答案 1 :(得分:1)

不要在webapp forder中复制WEB-INF。创建单独的应用程序文件夹,例如test并在test中复制WEB-INT您的servlet将在URL上可用

http://localhost:<port>/test/abc

<TOMCAT_HOME>
 |-webapps
    |-manager
    |-data
    |-docs
    |-host-manager
    |-ROOT
    |_test <--- create this folser
      |-WEB-INF
         |-classes <--classes 
         |-lib <-- librares
         |-web.xml 

您也可以在ROOT中复制它,在这种情况下,您的servlet将在URL上提供

http://localhost:<port>/abc

答案 2 :(得分:0)

您应该粘贴到webapp / FirstApp文件夹。 因此Tomcat可以为您的应用程序提供上下文。

答案 3 :(得分:0)

首先检查你的tomcat服务器是否是通过键入localhost:2020启动的,如果你得到tomcat页面然后启动它