首页 > 解决方案 > java.lang.ClassNotFoundException: services.Login

问题描述

嗨,我正在使用 Servlet 和 jsp 构建一个 Web 应用程序,我创建了一个登录 servlet,但是当我尝试使用 tomcat 运行它时,它抛出了找不到类的异常。我已经尝试了在堆栈溢出和其他来源上找到的最大解决方案,但没有帮助。我提供代码供您参考。

登录.java :-

package services;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import MyDao.Dao;
import bin.userbin;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
/**
 * Servlet implementation class Login
*/
//@WebServlet("/Login") 
public class Login extends HttpServlet {
    private static final long serialVersionUID = 102831973239L;


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub

        String username = request.getParameter("username");
        String password = request.getParameter("Paswword");
        String stat = request.getContextPath();
        System.out.println(stat+"context path");
        String stat1 = request.getServletPath();
        System.out.println(stat1+"servlet path");
        String stat2 = request.getPathInfo();
        System.out.println(stat2+" path info");




        try {

            userbin user = Dao.getname(username, password);

            /*Cookie ck = new Cookie("cookie1",u.getF_name() );
            response.addCookie(ck);*/



            if(user !=null){
            ServletContext context = getServletContext();
            //ServletContext context = getServletContext();
            /*String f = context.getInitParameter("F_name");
            String f1 = context.getInitParameter("L_name");*/
            PrintWriter p = response.getWriter();



            p.println("<form action = 'logout'><input type = 'submit' name = 'logout' value = 'logout'></input></form>");

            RequestDispatcher dispatch = request.getRequestDispatcher("fileRecords.html");
                dispatch.include(request, response);
            }
            else{
                System.out.println("invalid user! you need to sign in first");
                RequestDispatcher rdispatch = request.getRequestDispatcher("Index.html");
                rdispatch.include(request, response);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

Web.xml:-

 <?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>PC</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>services.Login</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/Login</url-pattern>
  </servlet-mapping>
<!--   <servlet>
    <servlet-name>searchfile</servlet-name>
    <servlet-class>services.SearchFile</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>searchfile</servlet-name>
    <url-pattern>/searchfile</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>filerecords</servlet-name>
    <servlet-class>services.FileRecords</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>filerecords</servlet-name>
    <url-pattern>/filerecords</url-pattern>
  </servlet-mapping> -->

</web-app>

index.html :-

<html lang="en">
<head>
    <title>Login Form</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

</head>
<body>

    <div class="limiter">
        <div class="container-login100">
            <div class="wrap-login100">
                <div class="login100-pic js-tilt" data-tilt>
                    <img src="images/img-01.png" alt="IMG">
                </div>

                <form class="login100-form validate-form" action="Login" method="post"> 
                    <span class="login100-form-title">
                        Member Login
                    </span>

                    <div class="wrap-input100 validate-input" data-validate = "Valid email is required: ex@abc.xyz">
                        <input class="input100" type="text" name="username" placeholder="UserName">
                        <span class="focus-input100"></span>
                        <span class="symbol-input100">
                            <i class="fa fa-envelope" aria-hidden="true"></i>
                        </span>
                    </div>

                    <div class="wrap-input100 validate-input" data-validate = "Password is required">
                        <input class="input100" type="password" name="pass" placeholder="Password">
                        <span class="focus-input100"></span>
                        <span class="symbol-input100">
                            <i class="fa fa-lock" aria-hidden="true"></i>
                        </span>
                    </div>

                    <div class="container-login100-form-btn">
                        <!--  <button class="login100-form-btn" onclick="operation.html">
                            Login
                        </button> -->
                        <input type="submit" " value="Login" />
                    </div>

                    <!-- <div class="text-center p-t-12">
                        <span class="txt1">
                            Forgot
                        </span>
                        <a class="txt2" href="#">
                            Username / Password?
                        </a>
                    </div>

                    <div class="text-center p-t-136">
                        <a class="txt2" href="#">
                            Create your Account
                            <i class="fa fa-long-arrow-right m-l-5" aria-hidden="true"></i>
                        </a>
                    </div> -->
                </form>
            </div>
        </div>
    </div>

</body>
</html>

我得到的错误:-

java.lang.ClassNotFoundException: services.Login at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1138) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309) at org. org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:523) 在 org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager. java:150) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1032) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:761) at org.apache.catalina.core .StandardWrapperValve.invoke(StandardWrapperValve.java:133) 在 org.apache.catalina.core。StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org .apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve .java:87) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) 在 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) 在 org.apache.coyote。 AbstractProcessorLight.process(AbstractProcessorLight.java:66) 在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764) 在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 在 java.util 的 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388) .concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(未知来源)在 java.lang.Thread.run 运行(TaskThread.java:61)(未知来源)在 java.lang.Thread.run 运行(TaskThread.java:61)(未知来源)

提前致谢..

标签: javaservlet-3.0

解决方案


推荐阅读