Link to home
Start Free TrialLog in
Avatar of sathyabalaji
sathyabalajiFlag for India

asked on

The import javax.servlet cannot be resolved

Dear All

Please help to solve this.

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error instantiating servlet class LoginServlet
      org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
      org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857)
      org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
      org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
      java.lang.Thread.run(Unknown Source)

root cause

java.lang.Error: Unresolved compilation problems:
      The import javax.servlet cannot be resolved
      The import javax.servlet cannot be resolved
      HttpServlet cannot be resolved to a type
      RequestDispatcher cannot be resolved to a type
      ServletConfig cannot be resolved to a type
      HttpServletRequest cannot be resolved to a type
      HttpServletResponse cannot be resolved to a type
      ServletException cannot be resolved to a type
      rd cannot be resolved
      rd cannot be resolved

      LoginServlet.<init>(LoginServlet.java:1)
      sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
      sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
      java.lang.reflect.Constructor.newInstance(Unknown Source)
      java.lang.Class.newInstance0(Unknown Source)
      java.lang.Class.newInstance(Unknown Source)
      org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
      org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857)
      org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
      org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
      java.lang.Thread.run(Unknown Source)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
Apache Tomcat/6.0.18


Class Path : C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib; C:\Program Files\Java\jdk1.6.0_11\jre\lib; C:\Program Files\Java\jdk1.6.0_11\lib; C:\Program Files\Java\jdk1.6.0_11\jre\lib; C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\rt.jar

JAVA_HOME : C:\Program Files\Java\jdk1.6.0_11

--------------------------------------------------------------------------------------------
i ADDED rt.jar also. But Still problem is not solved

C:\Program Files\Java\jdk1.5.0_02
C:\Program Files\Java\jdk1.6.0_11
C:\Program Files\Java\jre1.5.0_02
C:\Program Files\Java\jre1.6.0_04
C:\Program Files\Java\jre6

These Many Java versions are available

I am using Tomcat Server 6

Please help me

Regards
Sathya
SOLUTION
Avatar of rrz
rrz
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
there are unnecessary path in classpath. just add for tomcat and for jre or jdk. adding rt.jar is not required as it will be added with tomcat\lib path.

You can simply set the classpath to
"C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\*;."

Open in new window

Tomcat manages its own classpath, you shouldn't be adding anything to the classpath.

Try starting with a clean tomcat install and let me know if you get the same error
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
>  But sathyabalaji is trying to compile his LoginServlet.java  file.

the error is coming from tomcat

> That is done using the jdk.

that is correct though. They need to first compile the servlet before deploying to tomcat
To do that you'll need C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar in your build path as rrz mentions in first comment
Avatar of sathyabalaji

ASKER

Dear All
1) I have removed all classpath in tomcat
Tomcat classpath is C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\bootstrap.jar;
CLASSPATH : C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar;
JAVA_HOME : C:\Program Files\Java\jdk1.5.0_02

I have uninstalled java 1.6 updates. I have jkt1.5.0_02 only now.

when i compile at dos prompt, i am getting error.

C:\PROGRA~1\APACHE~1\TOMCAT~1.0\vgp\src>javac LoginServlet.java
LoginServlet.java:1: package javax.servlet does not exist
import javax.servlet.*;
^
LoginServlet.java:2: package javax.servlet.http does not exist
import javax.servlet.http.*;
^
LoginServlet.java:7: cannot find symbol
symbol: class HttpServlet
public class LoginServlet extends HttpServlet {
                                  ^
LoginServlet.java:14: cannot find symbol
symbol  : class ServletConfig
location: class LoginServlet
        public void init(ServletConfig config) {
                         ^
LoginServlet.java:28: cannot find symbol
symbol  : class HttpServletRequest
location: class LoginServlet
        public void service(HttpServletRequest request, HttpServletResponse resp
onse)
                            ^
LoginServlet.java:28: cannot find symbol
symbol  : class HttpServletResponse
location: class LoginServlet
        public void service(HttpServletRequest request, HttpServletResponse resp
onse)
                                                        ^
LoginServlet.java:29: cannot find symbol
symbol  : class ServletException
location: class LoginServlet
                        throws ServletException, IOException {
                               ^
LoginServlet.java:32: cannot find symbol
symbol  : class HttpSession
location: class LoginServlet
                        HttpSession session = request.getSession(true);
                        ^
Note: LoginServlet.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
8 errors


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

public class LoginServlet extends HttpServlet {

      Connection connection;
      Statement statement;
      ResultSet resultset;
      PrintWriter out;

      public void init(ServletConfig config) {
            String driver = config.getInitParameter("driver");
            String url = config.getInitParameter("url");
            String user = config.getInitParameter("user");
            String pass = config.getInitParameter("pass");

            try {
                  Class.forName(driver);
                  connection = DriverManager.getConnection(url, user, pass);
            } catch (Exception e) {
                  System.out.println("Exception in init():" + e);
            }// catch
      }// init

      public void service(HttpServletRequest request, HttpServletResponse response)
                  throws ServletException, IOException {
            try {
                  System.out.println("in service");
                  HttpSession session = request.getSession(true);
                  response.setContentType("text/html");
                  out = response.getWriter();
                  statement = connection.createStatement();
                  resultset = statement
                              .executeQuery("SELECT USERNAME, PASSWORD FROM LOGIN WHERE USERNAME='"
                                          + request.getParameter("userName")
                                          + "' AND PASSWORD='"
                                          + request.getParameter("password") + "'");

                  if (resultset.next()) {
                        System.out.println("in if");
                        ResultSet languageResultSet = statement
                                    .executeQuery("SELECT LANGUAGE FROM LANGUAGES");
                        ArrayList languages = new ArrayList();
                        while (languageResultSet.next()) {
                              languages.add(languageResultSet.getString("LANGUAGE"));
                        }
                        session.setAttribute("languages", languages);
                        System.out.println("in lang");
                        ResultSet levelResultSet = statement
                                    .executeQuery("SELECT TESTLEVEL FROM LEVELS");
                        System.out.println("rs" + levelResultSet);
                        ArrayList levels = new ArrayList();
                        while (levelResultSet.next()) {
                              levels.add(levelResultSet.getString("TESTLEVEL"));
                        }
                        session.setAttribute("levels", levels);
                        System.out.println("in level");
                        System.out.println("size::" + levels.size() + "::"
                                    + languages.size());
                        response.sendRedirect("./LoginSuccess.jsp");
                  } else {
                        response.sendRedirect("./index.jsp");
                  }
            } catch (Exception e) {
                  System.out.println("login failed::" + e);
            }//catch
      }//service
}//class

Please Help to solve this

Regards
Sathya
Please post the result of the following at the command prompt
echo %CLASSPATH%

Open in new window

HI

CLASS_PATH=C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-ap
i.jar;

Regards
Sathya
What happens when you use  
C:\PROGRA~1\APACHE~1\TOMCAT~1.0\vgp\src>javac -classpath "C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar" LoginServlet.java  

If that doesn't work, then recheck the path and make sure that the servlet-api.jar is located there.
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
After Setting CATALINA_HOME Environment Variables, it is started working fine.

Thanks to all
:)