繁体   English   中英

无法在Tomcat中运行Servlet

[英]Cannot run a servlet inside Tomcat

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

我在“ ..Tomcat 7.0 \\ webapps \\ ROOT \\ test \\ WEB-INF \\ classes”中test.class

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是insinde 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> javac -classpath“ C:\\ Program Files \\ Apache Software Foundation \\ Tomcat 7.0 \\ lib \\ servlet-api.jar” -d类test.java

通过在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>

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

有关更多信息,请参见Oracle 教程

文档根目录下的特殊目录WEB-INF包含与应用程序相关的所有内容,这些内容不在应用程序的公共文档树中。 WEB-INF中包含的任何文件都不能直接提供给客户端。 WEB-INF的内容包括:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM