JDBC连接的Java空指针异常

Sha*_*hab 1 java sql connection jdbc

我正在尝试运行一个Web应用程序,该应用程序从用户获取特定长度的数字并针对数据库进行检查(因此,如果用户输入了错字,它将提供关于用户实际意味着什么密钥的建议).我遇到的问题是应用程序将无法连接到数据库,我收到此错误:


显示java.lang.NullPointerException
在Validator.Validate.checkIDs(Validate.java:410)
在Validator.Validate.getAllValidIds(Validate.java:203)
在Python.WebServlet.processRequest(WebServlet.java:70)
在Python.WebServlet.doPost (WebServlet.java:247) 位于org.apache.catalina.core的
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
的javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
. ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
atg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org .apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve)的.java:168)
在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
在org.apac hegata.valves.AccessLogValve.invoke(AccessLogValve.java:927)org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter. java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
atg.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util .net.AprEndpoint $ SocketProcessor.run(AprEndpoint.java:1805)
java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java) :908)
在java.lang.Thread.run(Thread.java:662)


Validator.Validate中的第410行是:

Statement stmt = Conn.createStatement();
Run Code Online (Sandbox Code Playgroud)

其中Conn是java.sql.Connection变量

第203行是对执行^语句的方法的调用


java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546 )
在java.lang.Class.forName0(本机方法)
在java.lang.Class.forName(Class.java:169)
在Validator.Validate.dbConnect(Validate.java:394)
在Validator.Validate.getAllValidIds(验证.的java:193)
在Python.WebServlet.processRequest(WebServlet.java:70)
在Python.WebServlet.doPost(WebServlet.java:247)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
在使用javax. servlet.http.HttpServlet.service(HttpServlet.java:722)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 210)
在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
在org.apache.catalina.core.StandardContextValve.invoke(STANDAR dContextValve.java:169)
在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
在org.apache.catalina
位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)的.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118 )
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.过程(AbstractProtocol.java:579)
在org.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.run(AprEndpoint.java:1805)
在java.util.concurrent.ThreadPoolExecutor中的$ Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)


这是我在我的服务器上遇到的错误,如果我在我的本地机器上运行它就可以正常工作(它验证了ID).这可能是什么问题?难道不能找到com.mysql.jdbc.Driver类吗?这个课程是问题吗?

感谢您的建议/帮助!

注意:

Validator类是我的类路径中的外部jar.它调用其类路径中的另一个jar包含com.mysql.jdbc类,如下图所示

目前在我的netbeans项目中的库


BugValidator jar包含mysql-connector jar,它有Drivers类

BugValidator jar的内容


mysql-connector-java-5.1.7-bin.jar的内容

Sim*_*Sez 5

java.lang.ClassNotFoundException:com.mysql.jdbc.Driver

您必须在服务器类路径中包含MySQL JDBC-Driver.
通过将其与您的应用程序一起发布或将其放入您的服务器lib目录中.

希望有这种帮助,玩得开心!