java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest

18,255

Solution 1

Try with this in CMD:

SET CATALINA_HOME = C:\Program Files\Apache Software Foundation\Tomcat 7.0;C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib;

(IN current version TOMCAT 7.0)

Solution 2

What version of Tomcat are you using? Are you using the Servlet jar shipped alongwith Tomcat or have you downloaded it separately? servlet-api.jar should be present inside /lib directory on Tomcat6 and inside /common/lib and /server/lib on Tomcat 5.5. Make sure you are not using server specific libraries in the webapp /WEB-INF/lib else it would lead to collision

Solution 3

Maybe that is because your CATALINA_HOME is pointing to the lib folder.

Solution 4

I suspect that your CATALINA_HOME environment variable is wrong. If tomcat is installed in the "c:\tomcat" directory, then you should use the value CATALINA_HOME = C:\tomcat

Share:
18,255
Admin
Author by

Admin

Updated on June 04, 2022

Comments

  • Admin
    Admin almost 2 years

    I'm very new to Tomcat servlet coding, and I'm getting this error:

    > java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
    -> `servlet-api.jar` is in lib `tomcat_root/lib` dirctory 
    
    CATALINA_HOME = C:\tomcat\lib\;
    JAVA_HOME = C:\Program Files\Java\jdk1.7.0_01
    Path = ....;%JAVA_HOME%\bin;%JAVA_HOME%;...
    

    I'm confused, because javac is compiling the code without any error.

    Here's the code that I'm using - can you tell what's causing the error? I can't.

    package com.life;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.util.*;
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    public class Task10 extends HttpServlet {
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, java.io.IOException {
            try {
                response.setContentType("text/html");
                java.io.PrintWriter out = response.getWriter();
    
                File destinationDir;
                String realPath = getServletContext().getRealPath("/files");
                destinationDir = new File(realPath);
                DiskFileItemFactory  fileItemFactory = new DiskFileItemFactory ();
                ServletFileUpload uploadHandler = new ServletFileUpload(fileItemFactory);
                if (ServletFileUpload.isMultipartContent(request)) {
                    List items = uploadHandler.parseRequest(request);
                }
                out.println(ServletFileUpload.isMultipartContent(request));
                out.println(realPath);
                out.close();
            }
            catch(Exception ex) {
                log("Error encountered while uploading file",ex);
            }
    
    
        }
    
    
        protected void doPost(HttpServletRequest request,
                              HttpServletResponse response) throws ServletException,
            java.io.IOException {
            doGet(request, response);
        }
    }