java - 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)(未知来源)
提前致谢..
解决方案
推荐阅读
- oracle - 分析具有重复记录的oracle表
- kotlin - 错误:没有@Inject 构造函数或@Provides-annotated 方法无法提供xxx
- jenkins - 如何有条件地隐藏参数
- python - 猎鹰引发自定义异常json
- javascript - Typescript 工厂类导致缺少属性
- javafx - JavaFX TimeLine 与 Canvas 文本动画
- c++ - 如何获取显示设备的驱动版本?
- tibco - tibco BW XA 交易
- docker - Que 因 Distillery 版本和 Docker 失败
- swift - 一种在 Swift 中动态调用方法的方法