(终结版)Idea中使用Maven管理jar包,导入了mysql-connector-java包还是报错ClassNotFound和java.lang.NullPointerException

(注:本篇博客适用于Eclipse, myeclipse和Idea开发环境)

好久没使用就基础的Servlet写项目了,想重温一下基础,可是却犯了最基本的错误,我今天使用Idea编写一个简单的登录页面,可是一直显示空指针异常和类找不到的异常,各种谷歌都无果。。后来仔细看了一下异常被自己笑到了,以后出了错千万别着急,一定要好好读一遍你的报错信息。。。。。。。

(终结版)Idea中使用Maven管理jar包,导入了mysql-connector-java包还是报错ClassNotFound和java.lang.NullPointerException_第1张图片
就这么一个low的登录界面,点击提交:
(终结版)Idea中使用Maven管理jar包,导入了mysql-connector-java包还是报错ClassNotFound和java.lang.NullPointerException_第2张图片看Idea报错:

ava.lang.ClassNotFoundException: com.mysql.jdbc.mysql
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at com.bean.dao.UserDaoImpl.checkLoginDao(UserDaoImpl.java:14)
	at com.bean.service.UserServiceImpl.checkUserLogin(UserServiceImpl.java:11)
	at com.bean.servlet.LoginServlet.service(LoginServlet.java:21)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2462)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2451)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)

居然是名字写错了,Class.forName(“com.mysql.jdbc.Driver”);我写成了com.mysql.jdbc.mysql;我去。。

总结:

总结了一下纠错的三种方法,99%可以解决你的问题:
①:如果你没用maven管理你的jar包,那么你的WEB-INF文件夹下的lib文件中一定要添加mysql-connector-java的jar包(三种IDE都适用,如果Idea没用模板的话也一样) ②:如果使用了Maven管理jar包,那就仔细检查你的错误,是不是Class.forName("com.mysql.jdbc.Driver);写错了,千万别太自信觉得自己不可能犯低级错误,错误往往都是这种低级错误积累的。
③:如果上面的都没错,去看看是不是你的jar包版本太高,有的电脑使用最新的8.x版本会报错,如果你用的是Maven的话可以去https://mvnrepository.com/artifact/mysql/mysql-connector-java换一个低版本的

你可能感兴趣的:(JavaWeb)