javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver

huangapple go评论115阅读模式
英文:

javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver

问题

  1. 我正在尝试运行简单的代码与MySQL连接。我正在使用EclipseTomcat
  2. 我已经在Libraries中添加了mysql-connector-java-8.0.1.9.jar
  3. Libraries-->mysql-->mysql-connector-java-8.0.1.9.jar
  4. 我已经花了几个小时来添加和移除mysql-connector-java-8.0.1.9.jar到构建路径,但无法让它运行。请帮忙。我需要在运行配置中添加任何内容吗?
  5. 这是Eclipse浏览器上的错误:
  6. HTTP Status 500 Internal Server Error
  7. 异常报告类型
  8. 消息 javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver
  9. 描述 服务器遇到了一个意外情况,阻止它完成请求。
  10. 异常
  11. org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver
  12. org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:599)
  13. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:500)
  14. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
  15. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
  16. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  17. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  18. 根本原因
  19. javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver
  20. org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:917)
  21. org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:846)
  22. org.apache.jsp.regCheck_jsp._jspService(regCheck_jsp.java:129)
  23. org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
  24. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  25. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
  26. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
  27. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
  28. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  29. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  30. 根本原因
  31. java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver
  32. compute.DB.con(DB.java:21)
  33. org.apache.jsp.regCheck_jsp._jspService(regCheck_jsp.java:100)
  34. org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
  35. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  36. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
  37. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
  38. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
  39. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  40. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  41. 根本原因
  42. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  43. org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1951)
  44. org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1794)
  45. compute.DB.con(DB.java:21)
  46. org.apache.jsp.regCheck_jsp._jspService(regCheck_jsp.java:100)
  47. org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
  48. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  49. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
  50. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
  51. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
  52. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  53. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  54. 请注意,根本原因的完整堆栈跟踪在服务器日志中可用。
  55. 这是控制台输出:
  56. > Mar 16, 2020 4:57:27 PM org.apache.catalina.core.StandardContext reload
  57. INFO: 正在重新加载名称为[/Mysql]的上下文
  58. Mar 16, 2020 4:57:27 PM org.apache.catalina.core.StandardContext reload
  59. INFO: 重新加载名称为[/Mysql]的上下文已完成
  60. Mar 16, 2020 4:57:41 PM org.apache.catalina.core.StandardWrapperValve invoke
  61. SEVERE: 在带有路径[/Mysql]的上下文中为servlet[jsp]提供服务时,抛出异常[javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver],根本原因为
  62. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  63. at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1951)
  64. at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1794)
  65. at compute.DB.con(DB.java:21)
  66. at org.apache.jsp.regCheck_jsp._jspService(regCheck_jsp.java:100)
  67. at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
  68. at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  69. at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
  70. at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
  71. at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
  72. at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  73. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
  74. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
  75. at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  76. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
  77. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
  78. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
  79. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
  80. at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
  81. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:165)
  82. at org.apache.catalina.valves
  83. <details>
  84. <summary>英文:</summary>
  85. I am trying to run simple code to connect with mysql. I m using eclipse and tomcat.
  86. I have added mysql-connector-java-8.0.1.9.jar in Libraries:
  87. Libraries--&gt;mysql--&gt;mysql-connector-java-8.0.1.9.jar
  88. I have been at it for several hours adding and removing mysql-connector-java-8.0.1.9.jar to build path cannot get it running. Please help. Do I need to add any thing in run configuration??
  89. This is the error on eclipse browser:
  90. HTTP Status 500 Internal Server Error
  91. Type Exception Report
  92. Message javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver
  93. Description The server encountered an unexpected condition that prevented it from fulfilling the request.
  94. Exception
  95. org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver
  96. org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:599)
  97. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:500)
  98. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
  99. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
  100. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  101. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  102. Root Cause
  103. javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver
  104. org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:917)
  105. org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:846)
  106. org.apache.jsp.regCheck_jsp._jspService(regCheck_jsp.java:129)
  107. org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
  108. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  109. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
  110. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
  111. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
  112. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  113. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  114. Root Cause
  115. java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver
  116. compute.DB.con(DB.java:21)
  117. org.apache.jsp.regCheck_jsp._jspService(regCheck_jsp.java:100)
  118. org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
  119. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  120. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
  121. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
  122. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
  123. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  124. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  125. Root Cause
  126. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  127. org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1951)
  128. org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1794)
  129. compute.DB.con(DB.java:21)
  130. org.apache.jsp.regCheck_jsp._jspService(regCheck_jsp.java:100)
  131. org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
  132. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  133. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
  134. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
  135. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
  136. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  137. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  138. Note The full stack trace of the root cause is available in the server logs.
  139. This is the output in console:
  140. &gt; Mar 16, 2020 4:57:27 PM org.apache.catalina.core.StandardContext reload
  141. INFO: Reloading Context with name [/Mysql] has started
  142. Mar 16, 2020 4:57:27 PM org.apache.catalina.core.StandardContext reload
  143. INFO: Reloading Context with name [/Mysql] is completed
  144. Mar 16, 2020 4:57:41 PM org.apache.catalina.core.StandardWrapperValve invoke
  145. SEVERE: Servlet.service() for servlet [jsp] in context with path [/Mysql] threw exception [javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Driver] with root cause
  146. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  147. at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1951)
  148. at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1794)
  149. at compute.DB.con(DB.java:21)
  150. at org.apache.jsp.regCheck_jsp._jspService(regCheck_jsp.java:100)
  151. at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
  152. at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  153. at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
  154. at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
  155. at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
  156. at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  157. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
  158. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
  159. at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  160. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
  161. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
  162. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
  163. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
  164. at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
  165. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:165)
  166. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
  167. at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
  168. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
  169. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
  170. at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1195)
  171. at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:654)
  172. at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:319)
  173. at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
  174. at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
  175. at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  176. at java.base/java.lang.Thread.run(Thread.java:834)
  177. Try - 05 Trying to establish con in regCheck.jsp
  178. Con method called Try 5A
  179. Try 05a - Trying to connect
  180. This is DB.java:
  181. package compute;
  182. import java.sql.Connection;
  183. import java.sql.DriverManager;
  184. import java.sql.Statement;
  185. import java.sql.*;
  186. public class DB {
  187. final static String DB_URL = &quot;jdbc:mysql://localhost:3306/new&quot;;
  188. final static String USER = &quot;admin&quot;;
  189. final static String PASS = &quot;admin&quot;;
  190. public static Connection con() {
  191. System.out.println(&quot;Con method called Try 5A&quot;);
  192. Connection con;
  193. try {
  194. System.out.println(&quot;Try 05a - Trying to connect&quot;);
  195. DriverManager.registerDriver(new com.mysql.jdbc.Driver());
  196. con = DriverManager.getConnection(DB_URL, USER, PASS);
  197. System.out.println(&quot;Try 05a- con established &quot;);
  198. return con;
  199. }catch(Exception e) {
  200. System.out.println(e);
  201. return null;
  202. }
  203. }
  204. public static Statement st() {
  205. Statement stmt;
  206. try {
  207. stmt=DB.con().createStatement();
  208. return null;
  209. }catch(Exception e) {
  210. System.out.println(e);
  211. return null;
  212. }
  213. }
  214. }
  215. This is regCheck.jsp:
  216. &lt;%@page import=&quot;java.sql.Connection&quot; %&gt;
  217. &lt;%@page import=&quot;compute.DB&quot; %&gt;
  218. &lt;%@page import=&quot;java.sql.PreparedStatement&quot; %&gt;
  219. &lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=ISO-8859-1&quot;
  220. pageEncoding=&quot;ISO-8859-1&quot;%&gt;
  221. &lt;!DOCTYPE html&gt;
  222. &lt;html&gt;
  223. &lt;head&gt;
  224. &lt;meta charset=&quot;ISO-8859-1&quot;&gt;
  225. &lt;title&gt;Insert title here&lt;/title&gt;
  226. &lt;/head&gt;
  227. &lt;body&gt;
  228. &lt;%
  229. String user = request.getParameter(&quot;username&quot;);
  230. System.out.println(&quot;Try - 05 Trying to establish con in regCheck.jsp&quot;);
  231. Connection con = DB.con();
  232. System.out.println(&quot;Preparing Statement in regCheck.jsp&quot;);
  233. PreparedStatement p = con.prepareStatement(&quot;Insert into register(username)values(?)&quot;);
  234. p.setString(1,user);
  235. System.out.println(&quot;user::&quot; +user);
  236. int R = p.executeUpdate();
  237. if(R!=0)
  238. response.sendRedirect(&quot;index.html&quot;);
  239. else
  240. response.sendRedirect(&quot;register.jsp&quot;);
  241. %&gt;
  242. &lt;/body&gt;
  243. &lt;/html&gt;
  244. </details>
  245. # 答案1
  246. **得分**: 0
  247. JDBC驱动程序库在您的*运行时*CLASSPATH中丢失,即Tomcat在其中查找所需的类以执行已编译代码的CLASSPATH
  248. <details>
  249. <summary>英文:</summary>
  250. The JDBC driver library is missing from your *runtime* CLASSPATH i.e. the CLASSPATH where Tomcat looks for the required classes in order to execute your compiled code.
  251. </details>
  252. # 答案2
  253. **得分**: 0
  254. 我将mysql-connector-java-8.0.19.jar添加到Tomcat 7.0/Lib中,现在它正常工作。
  255. 我从库中和所有地方都将它移除,它仍然可用。
  256. 我创建了一个新项目,使用相同的代码,而没有将mysql-connector-java-8.0.19.jar添加到任何库或构建路径中,它正常运行。
  257. 我在某个地方的YouTube上找到了将其添加到Tomcat的说明。
  258. <details>
  259. <summary>英文:</summary>
  260. I added mysql-connector-java-8.0.19.jar to Tomcat 7.0/Lib and now it&#39;s working find.
  261. I removed it from Library and everywhere and it works.
  262. I created new project with the same code and without adding mysql-connector-java-8.0.19.jar to any library or build path, it&#39;s running fine.
  263. I found the instruction to add to tomcat somewhere on youtube.
  264. </details>

huangapple
  • 本文由 发表于 2020年3月16日 22:12:05
  • 转载请务必保留本文链接:https://go.coder-hub.com/60707549.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定