2016-11-08 7 views
0

はありませんが、それはjavax.servlet.ServletException:クラスcom.mq.sample.Helloは、1つのログイン・ページと1つのサーブレットを作成している私は、単純なログインapplication.Iを作成しようとしていますサーブレット

ここServletExceptionがを与えています私のサンプルコードです。

public class Hello extends HttpServlet{ 

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

     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 

     String username=request.getParameter("username"); 
     String password=request.getParameter("password"); 
     out.println("hello"); 

     if(username.equals("xyz")&&password.equals("password")) 
     { 
      HttpSession session=request.getSession(); 
      session.setAttribute("uname",username); 
      RequestDispatcher rd=request.getRequestDispatcher("/Home.jsp"); 
      rd.forward(request, response); 
     } 
     else 
     { 
      RequestDispatcher rd=request.getRequestDispatcher("/login.html"); 
      out.println("<h4>Plz provide correct Username or password</h4>"); 
      rd.include(request,response); 
     } 


     out.close(); 

       }catch(Exception e){System.out.println(e);} 
    } 

このコードは、次の例外を与えている: 私はなぜこれを取得しておりません。

javax.servlet.ServletException: Class com.mq.sample.Hello is not a Servlet 

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
java.lang.Thread.run(Unknown Source) 
root cause 

java.lang.ClassCastException: com.mq.sample.Hello cannot be cast to javax.servlet.Servlet 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
java.lang.Thread.run(Unknown Source) 

事前

+1

インポートステートメントを表示します。 'HttpServlet'はどのパッケージですか? –

+0

デプロイメントにいくつのservlet.jarファイルがあるかを確認します.2つの異なるクラスローダーによってロードされている可能性があります。 – soorapadman

+0

import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; –

答えて

1

のおかげであなたはthis linkを参照して、Tomcatのからエラーを取得しています。したがって、あなたのクラスパスにサーブレットjarの競合があることです。 classpathからjavax.servlet-api.jarを削除し、これを行います。 enter image description here

関連する問題