无法运行hello world servlet

时间:2014-08-02 10:24:16

标签: tomcat servlets

我正在尝试在我的ubuntu PC中使用servlet示例:

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

以下是Tomcat下的目录结构。

web app tree structure

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

但是得到的错误是&#34; HTTP状态404 - / servlet / Demo1&#34;。

Tomcat版本:Apache Tomcat / 7.0.52(Ubuntu)

可能缺少什么? 感谢。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我使用以下命令

捕获了tomcat日志
# tail -f /var/log/tomcat7/catalina.out

在此之后我才知道,web应用程序部署目录是/ var / lib / tomcat7 / webapps / not / usr / share / tomcat7 / webapps /.

将目录结构移动到新位置。

正如@ silk_route11所建议的,方法名称doGet()中存在错误。 没有在<servlet-name>进行任何更改。

现在,能够在浏览器上看到输出。 感谢。