【问题标题】:Not able to run hello world servlet无法运行 hello world servlet
【发布时间】:2014-09-25 11:17:34
【问题描述】:

我正在我的 ubuntu PC 中尝试以下 servlet 示例:

http://www.mkyong.com/servlet/a-simple-servlet-example-write-deploy-run/

以下是Tomcat下的目录结构

Java 类:

   package com.mkyong;

    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class ServletDemo1 extends HttpServlet{

        public void doGe(HttpServletRequest request, HttpServletResponse response)
        throws IOException{
                PrintWriter out = response.getWriter();
                out.println("<html>");
                out.println("<body>");
                out.println("<h1>Hello Servlet Get</h1>");
                out.println("</body>");
                out.println("</html>");
        }
    }

web.xml:

 <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

        <servlet>
                <servlet-name>servlet</servlet-name>
                <servlet-class>com.mkyong.ServletDemo1</servlet-class>
        </servlet>

        <servlet-mapping>
                <servlet-name>servlet</servlet-name>
                <url-pattern>/Demo1</url-pattern>
        </servlet-mapping>
</web-app>

Tomcat 服务器已启动,因为我可以看到 http://localhost:8080 的默认网页

为了运行 servlet,我使用了 URL http://localhost:8080/servlet/Demo1

但出现“HTTP 状态 404 - /servlet/Demo1”错误。

Tomcat 版本:Apache Tomcat/7.0.52 (Ubuntu)

可能缺少什么? 谢谢。

【问题讨论】:

  • 您按照他的教程中的描述做了所有事情?没有一个错误?
  • 检查web.xml中的servlet-name

标签: tomcat servlets


【解决方案1】:

HttpServlet 的方法是doGet(HttpServletRequest req, HttpServletResponse resp) 而不是doGe()。这可能是一个错误。检查web.xml 中的servlet-nameurl-pattern。 我认为servlet-name 应该是ServletDemo1

【讨论】:

    【解决方案2】:

    您还应该查看 Tomcat 管理页面以了解应用程序是否已正确启动。

    【讨论】:

      【解决方案3】:

      我使用以下命令捕获了 tomcat 日志

      # tail -f /var/log/tomcat7/catalina.out
      

      后来我才知道,web应用部署目录是/var/lib/tomcat7/webapps/而不是/usr/share/tomcat7/webapps/。

      将目录结构移至新位置。

      正如@silk_route11 所建议的,方法名称doGet() 中有错误。 &lt;servlet-name&gt; 没有做任何更改。

      现在,可以在浏览器上看到输出了。 谢谢。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-07
        • 1970-01-01
        • 2013-11-18
        • 1970-01-01
        • 2018-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多