IntelliJ Servlet Web应用连接MySQL报Cannot create JDBC driver错误求助
问题解决步骤
你的报错核心原因为Tomcat容器未成功读取到DataSource配置、或MySQL JDBC驱动未被正确加载,按以下顺序排查即可解决:
- 确认
context.xml放置路径正确,必须放在项目src/main/webapp/META-INF/目录下,Tomcat只会读取该路径下的Context配置,路径错误会直接导致资源配置加载失败,出现driver、url为null的情况 - 检查MySQL驱动部署
- 若你使用的MySQL版本为8.0+,需将context.xml中的
driverClassName修改为com.mysql.cj.jdbc.Driver,同时url补充时区等兼容参数:url="jdbc:mysql://localhost:3306/web_student_tracker?serverTimezone=UTC&useSSL=false&characterEncoding=utf8" - 确认Maven引入的mysql-connector-java依赖,在项目打包时会被放到
WEB-INF/lib目录下,也可以直接将对应版本的MySQL驱动jar包放入Tomcat安装目录的lib文件夹,避免容器层面加载驱动失败
- 若你使用的MySQL版本为8.0+,需将context.xml中的
- 补充web.xml资源引用配置
部分Tomcat版本需要在WEB-INF/web.xml中显式声明资源引用才能正常注入DataSource:<resource-ref> <res-ref-name>jdbc/student_tracker</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> - 检查IntelliJ部署配置
打开Tomcat运行配置的Deployment标签,确认部署的war exploded构件包含所有Maven依赖,MySQL驱动包已被放入构件的WEB-INF/lib目录中。
内容的提问来源于stack exchange,提问作者just_a_learner
相关产品推荐
相关产品推荐

