参见英文答案 > Servlet returns “HTTP Status 404 The requested resource (/servlet) is not available” 6个
我有一个问题,我正在尝试运行我的简单servlet,Hello.java.我在eclipse中创建它,然后将文件放在webapps / ServletTest / WEB-INF / classes文件夹中并编译它,在同一文件夹中创建文件Hello.class.然后我修改了我的web.xml文件以映射servlet并尝试通过以下地址运行它
http://localhost:8080/ServletTest/Hello
但是,这不起作用,给出以下错误
HTTP状态404 –
类型状态报告
信息
description请求的资源不可用.
Apache Tomcat / 7.0.42
web.xml文件中的映射如下所示:
Hello
Main.Hello
Hello
/Hello
servlet的代码:
package Main;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Hello")
public class Hello extends HttpServlet {
private static final long serialVersionUID = 1L;
public Hello() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
response.setContentType("text/html");
String path = request.getContextPath();
String ip = request.getRemoteAddr();
out.print("" +
"
Hello" +"Hello World"+ "
" +
"Your ip is: " + ip + "
" +
"Your path is: " + path
+ "");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
解决方法:
已编译的Hello.class文件应位于该文件夹中
webapps/ServletTest/WEB-INF/classes/Main
因为它被宣布为Main包.
此外,您可以在/logs/catalina.out或/logs/catalina.log中查看Tomcat的启动日志,具体取决于.
此外,Suresh在评论中是正确的,使用< servlet>声明或@WebServlet.不要同时使用两者.
标签:java,eclipse,servlets,tomcat,http-status-code-404
来源: https://codeday.me/bug/20190716/1477883.html