ClassNotFoundException通过java的Servlet运行JDBC时
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ClassNotFoundException通过java的Servlet运行JDBC时,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2528字,纯文字阅读大概需要4分钟。
内容图文
![ClassNotFoundException通过java的Servlet运行JDBC时](/upload/InfoBanner/zyjiaocheng/707/0d6c11c089e84e7b9f3659d93689e763.jpg)
在尝试创建一个MysqlDataSource对象时,我得到了这个奇怪的异常(或者至少我认为这是问题的根源).
让我首先准确描述到目前为止我所拥有的:
我使用Tomcat7作为容器,Eclipse作为IDE,以创建一个JSP登录表单,它接受用户名和密码,然后调用名为“LoginController”的Servlet.每当您单击“登录”按钮时,LoginController将根据MySql数据库验证输入(用户名和密码).
好吧,至少这是计划……
一切似乎都没问题,直到它到达需要实例化com.mysql.jdbc.jdbc2.optional.MysqlDataSource对象的部分.
我得到了这个令人讨厌的错误:
HTTP Status 500 - Servlet execution threw an exception
type Exception report
message Servlet execution threw an exception
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.NoClassDefFoundError: com/mysql/jdbc/jdbc2/optional/MysqlDataSource
model.Authenticator.authenticateLogin(Authenticator.java:13)
controller.LoginController.doPost(LoginController.java:52)
javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.ClassNotFoundException: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
model.Authenticator.authenticateLogin(Authenticator.java:13)
controller.LoginController.doPost(LoginController.java:52)
javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.55 logs.
现在,我明白服务器“找不到MysqlDataSource”,我只是不明白为什么,因为我DID将所需的jar文件添加到项目中,通过“Project Properties-> Java Build Path-> Libraries – >添加外部Jar …“,您还可以看到它在Project Explorer中显示:
更令人惊讶的是,当我打开一个常规的Java应用程序项目(而不是动态Web项目)时,我能够连接到Mysql数据库并运行查询而没有任何问题.
只是与Tomcat它不起作用……
我在网上看了一下,看到有人建议通过“Java Source Attachment”来“附加源代码……”,但无法弄清楚如何做到这一点……
任何帮助将不胜感激!
解决方法:
当您将依赖项中的文件添加为外部jar时,在构建应用程序时它不会包含在war文件中.您需要将jar复制到项目中的WEB-INF / lib目录或将其放在Tomcat lib目录中
内容总结
以上是互联网集市为您收集整理的ClassNotFoundException通过java的Servlet运行JDBC时全部内容,希望文章能够帮你解决ClassNotFoundException通过java的Servlet运行JDBC时所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。