HTTP Status 500-Ошибка создания экземпляра класса сервлета - PullRequest
0 голосов
/ 06 ноября 2019

Я только что выучил Servlets и попытался реализовать базовый Servlet. Я получаю сообщение об ошибке, подобное этому

Статус HTTP 500 - Внутренняя ошибка сервера

Сообщение об ошибке создания экземпляра класса сервлета

Я попытался решить проблемуследуя по этой ссылке, но ничего не получилось. Ниже приведена структура моего проекта

enter image description here

Содержимое моего index.html файла

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<a href="welcome">Click to call Servlet</a>
</body>
</html>

Содержимое моего web.xml file

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>final</display-name>    
<servlet>
<servlet-name>sample</servlet-name>
<servlet-class>Test</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>sample</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
</web-app>

My Test class

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Test extends HttpServlet {
     private String mymsg;
     private static final long serialVersionUID = 102831973239L;

       public void init() throws ServletException {
          mymsg = "Hello World!";
       }

       public void doGet(HttpServletRequest request, 
          HttpServletResponse response)
          throws ServletException, IOException 
       {

          // Setting up the content type of webpage
          response.setContentType("text/html");

          // Writing message to the web page
          PrintWriter out = response.getWriter();
          out.println("<h1>" + mymsg + "</h1>");
       }



}

Я довольно новичок в этом, и это сообщения об ошибках на моей tomcat консоли

Nov 06, 2019 11:46:37 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet [sample] as unavailable
Nov 06, 2019 11:46:37 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet [sample]
java.lang.ClassNotFoundException: Test
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1360)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1182)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:546)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:527)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1044)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:763)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:528)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
...