简单的servlet在Tomcat / 9.0.14中遇到问题,错误为“源服务器未找到当前表示形式..”。

时间:2019-01-07 17:09:10

标签: java tomcat servlets

在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

1 个答案:

答案 0 :(得分:1)

您的Web应用程序目录结构中有一个错字。应该是WEB-INF而不是WEB-INFO