0

I just learnt Servlets and tried implementing a basic Servlet . I am getting an error like this

HTTP Status 500 – Internal Server Error

Message Error instantiating servlet class

I have tried to solve the issue by following this link but nothing worked out. The following is my project structure

enter image description here

The content of my index.html file

<!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>

The content of my 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>");
       }



}

I am pretty new to this stuff and these are the error messages on my tomcat console

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)
  • Same setup is working fine for me. Would it be possible for you to share logs! if you have any? Even try removing instance and clean tomcat. – ialam Nov 06 '19 at 18:03
  • @ialam I have updated the logs . Tried cleaning tomcat but no use – srinivas chaitanya Nov 06 '19 at 18:30
  • There seems to be problem with your project. It's not able to find Test class. Try deleting the Test file and create it again or delete the project and recreate it if 1st one doesn't work. – ialam Nov 06 '19 at 19:27
  • Declare and put your class into a `package`. – nitind Nov 06 '19 at 22:01

0 Answers0