在Apache Tomcat / 9.0.14中,我创建了一个非常简单的servlet来运行,但出现错误:
原始服务器找不到目标资源的当前表示,或者不愿意透露其存在。
我关注了这篇文章:https://www.studytonight.com/servlet/steps-to-create-servlet-using-tomcat-server.php
我在jdk1.8.0_151的Redhat 6.9中安装了tomcat Tomcat / 9.0.14。
我也在桌面Windows 10中尝试过相同的操作。
当我按照上述文章中的步骤进行操作,并尝试使用url“ localhost:8080 \ First \ hello”直接运行servlet时,出现以下错误:
HTTP状态404 –找不到
类型状态报告消息/你好
描述原始服务器找不到目标资源的当前表示,或者不愿意透露该资源的存在。
Apache Tomcat / 9.0.14
如下所示的web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app version="3.0" xmlns="java.sun.com/xml/ns/javaee" xmlns:xsi="w3.org/2001/XMLSchema-instance" xsi:schemaLocation="java.sun.com/xml/ns/javaee java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>pl.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
编译后,文件夹中有MyServerlet.class:
/opt/tomcat/webapps/First/WEB-INFO/classes/pl.
我已经在这里阅读过帖子:
Servlet returns “HTTP Status 404 The requested resource (/servlet) is not available”
我没有使用任何Eclipse或J_Builder之类的IDE。我只是按照上面的文章并构建这个servlet进行测试,看它是否工作正常。
还要重新启动服务器几次,重新编译,重新检查web.xml并检查tomcat Web日志。
简单就行不通了。
package pl;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MyServerlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>Hello Readers</h1>");
out.println("</body></html>");
}//end of doGet
}//end of Class
答案 0 :(得分:1)
您的Web应用程序目录结构中有一个错字。应该是WEB-INF
而不是WEB-INFO
。