请求的资源不可用HTTP 404

时间:2014-07-17 05:57:56

标签: java servlets myeclipse

我正在尝试在myeclipse中为spring创建一个简单的Java servlet程序。当我部署我的程序时,它给了我上面提到的“TITLE”错误。任何人都可以帮助我。?

package com.example.hello;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class Main extends HttpServlet {

private String message;

public void init() throws ServletException
{
  // Do required initialization
  message = "Hello World";
}

public void doGet(HttpServletRequest request,
                HttpServletResponse response)
        throws ServletException, IOException
{
  // Set response content type
  response.setContentType("text/html");

  // Actual logic goes here.
  PrintWriter out = response.getWriter();
  out.println("<h1>" + message + "</h1>");
}

public void destroy()
{
  // do nothing.
}
}

我的web.xml是:

<servlet>
    <servlet-name>Hello</servlet-name>
    <servlet-class>com.example.hello.Main</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Hello</servlet-name>
    <url-pattern>/Hello</url-pattern>
</servlet-mapping>

1 个答案:

答案 0 :(得分:0)

看起来您已从生成的web.xml文件中删除了以下文本(由项目创建向导生成):

<welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

如果此元素存在,则会处理index.jsp文件,而不是获取404。

创建Web项目并进行部署时,它将部署到上下文根,默认情况下,它与项目名称相同。因此,如果您的项目名称是“MyProject”,则上下文根将是“MyProject”。您的servlet映射位于此上下文根之上。因此,调用servlet的正确URL是:

http://localhost:8080/MyProject/Hello

当然,如果您已将“MyProject”指定为默认值以外的其他内容,请将“MyProject”更改为您的实际项目名称或Web上下文根目录。没有与

相关联的Web应用程序
http://localhost:8080/Hello 

这就是您收到404错误的原因。