目录
一、Could not open ServletContext resource [/jdbc.properties]
二、java.sql.SQLException: Unexpected exception encountered during query.
三、maven爆红问题
四、applicationContext.xml文件加载不到
一、Could not open ServletContext resource [/jdbc.properties]
项目资源如下
在spring配置文件(applicationContext.xml)中加载jdbc.properties时引入文件
<context:property-placeholder location="jdbc.properties"/>时正常,之后配置DataSource时也正常可以访问到值,但是启动Tomcat后出现错误Could not open ServletContext resource [/jdbc.properties],仔细排查后发现没有加calsspath!!正确配置如下
二、java.sql.SQLException: Unexpected exception encountered during query.
在经过一系列百度操作后发现可能是·数据库驱动与数据库版本不一致问题,查询自己使用的MySQL为8.0.17版本
,而驱动是5.1.18
将驱动换为8.0.12,问题解决,驱动与版本信息参考官网https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html
升级为8.0.12记得更新驱动与url
url = jdbc:mysql://localhost:3306/数据库名称?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
drive = com.mysql.cj.jdbc.Driver
三、maven爆红问题
数据库版本与数据库驱动版本有问题,所以想把驱动版本换为8.0.12,但是pom文件中显示正常,而External Libraries中没有mysql-connector,右侧的maven显示mysql-connertor爆红,第三行的project也爆红(有时报,有时不报)。在网上搜索很多都没有解决.先将pom文件中mysql配置去掉,手动在依赖里面选择网上下好的jar包,暂时解决问题,但是没有从根本上解决问题!!
运行项目后发现警告 [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1] com.mchange.v2.c3p0.DriverManagerDataSource.ensureDriverLoaded Could not load driverClass com.mysql.cj.jdbc.Driver,
之后继续报异常java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver,看来骚操作不成功,得想办法解决maven,借鉴大佬的方法,在右侧maven中选中项木clean->install->Reimport,执行这三步后重启一下就ok
四、applicationContext.xml文件加载不到
这个本来是好好的,映像中没有修改什么文件就一直报这个错误,项目结构如下
在web.xml文件下将applicationContext.xml设置为全局变量,一直访问不到, 最后网上找了看了很多回答,有一个大佬的帖子很有用,个人感觉这个IDE的问题,大佬传送门,解决方法是在maven中添加如下代码
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
神奇的事情发生了,修改完后项目跑起来了!!!然后我又将该代码删除,项目依旧可以很好的运行,这个错误的原因目前不知道,无法复现。