SpringMVC开发报错总结
报错一:Tomcat启动时中文乱码
【报错描述】第一次下载或者打开Tomcat时可能在控制台会出现中文乱码问题。 【报错原因】Tomcat的内部编码是UTF-8,但是Windows系统的编码是GBK,在日志显示的时候,将Tomcat的日志显示编码改为GBK即可。 【解决方案】
- 打开Tomcat安装目录下的conf/logging.properties文件,我的本机目录是:D:\Program Files (x86)\apache-tomcat-9.0.39\conf\logging.properties,找到java.util.logging.ConsoleHandler.encoding 条目,将其改为GBK。
java.util.logging.ConsoleHandler.encoding = GBK
-
打开Tomcat安装目录下的conf/server.xml文件,添加
URIEncoding="UTF-8"。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
Tomcat的中文乱码问题即可解决。
报错二:Spring依赖版本问题
【报错描述】Caused by: java.lang.IllegalArgumentException: 找到多个名为spring_web的片段。 【报错原因】项目用Maven引入依赖,本机有Maven仓库,但是开发时又存在lib目录,本机lib目录位置:E:\IdeaProjects\project-management-system\src\main\webapp\WEB-INF\lib,两个目录中Spring版本存在冲突。 【解决方案】开发时删除lib目录,上线部署时再加上lib目录即可。
报错三:MySQL版本冲突
【报错描述】 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL client 【报错原因】代码中的MySQL驱动版本与连接的数据库版本存在冲突,更新pom.xml中的Maven依赖为数据库的版本即可。 【解决方案】 代码中原有的pom.xml坐标:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
数据库版本为:
C:\Users\Administrator>mysql --version