无法在Tomcat中运行servlet

时间:2014-05-09 18:45:21

标签: java jsp tomcat servlets

运行我的servlet时遇到问题。当我尝试运行它时,我得到HTTP状态404所请求的资源不可用

我在&#34; .. Tomcat 7.0 \ webapps \ ROOT \ test \ WEB-INF \ classes&#34; <内有 test.class / strong>

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class test extends HttpServlet {
    public void doGet(HttpServletRequest request,
            HttpServletResponse response)
            throws IOException{

        PrintWriter out=response.getWriter();
        java.util.Date today=new java.util.Date();
        out.println("<html>"+"<body>"+"<BR>"+"<B>"+"<center>"+today
                     +"</center>"+"<body>"+"</html>");
    }

}

我的web.xml是WEB-INF,看起来像是

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

  <servlet>
  <servlet-name>test</servlet-name>
  <servlet-class>test</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>/test<url-pattern>
  </servlet-mapping>
</web-app>

我用:

编译了.java文件

.. ROOT \ test \ WEB-INF&gt; javac -classpath&#34; C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ lib \ servlet-api.jar&#34; -d classes test.java

2 个答案:

答案 0 :(得分:0)

尝试在web.xml中提供完全限定的类名

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

  <servlet>
  <servlet-name>test</servlet-name>
  <servlet-class>test</servlet-class> <!-- give the fully qualified class name -->
  </servlet>
  <servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>/test<url-pattern>
  </servlet-mapping>
</web-app>

答案 1 :(得分:0)

主要问题是您的目录结构:Tomcat 7.0\webapps\ROOT\test\WEB-INF\classes。特殊目录WEB-INF必须直接在应用程序名称下(在您的情况下为ROOT)。

有关详细信息,请参阅Oracle tutorial

  

文档根目录WEB-INF下的特殊目录   与应用程序相关的所有内容都不在公共场合   应用程序的文档树。 WEB-INF中不包含任何文件   直接服务于客户。 WEB-INF的内容包括:

     

/ WEB-INF / classes / * - servlet和其他类的目录。

     

/WEB-INF/web.xml和/WEB-INF/sun-web.xml - 基于XML的部署   指定Web应用程序配置的描述符,   包括映射,初始化参数和安全约束。