【报错描述】第一次下载或者打开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的中文乱码问题即可解决。
【报错描述】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目录即可。
【报错描述】 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 mysql Ver 8.0.22 for Win64 on x86_64 (MySQL Community Server - GPL)将代码中的pom.xml坐标改为:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency>旧的MySQL的JDBC驱动的类名已经废弃:com.mysql.jdbc.Driver 新的MySQL的JDBC驱动的类名为:com.mysql.cj.jdbc.Driver
【报错描述】本地JDK版本为11.0.2,编译SpringMVC程序,在Intellij IDEA中报错如下:
Error:java: 错误: 不支持发行版本 5用PowerShell打开,运行mvn jetty:run,报错如下:
org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP PWC6199: Generated servlet error: 不再支持源选项 5。请使用 6 或更高版本。 PWC6199: Generated servlet error: 不再支持目标选项 1.5。请使用 1.6 或更高版本。【报错原因】IDEA中原来的语言级别为5,不兼容JDK 11,全部改为11即可。 【解决方案】 step1. 点击File->Project Structure->Project,将SDK和Project language level都改为11。
step2. 点击File->Project Structure->Modules,将language level改为11。
step3. 点击Settings->Build, Execution, Deployment->Compiler->Java Compiler,将Project bytecode version和Target bytecode version都改为11。
step4. 重新编译,编译成功。
【报错描述】 图片文件存放在本地,数据库中存储的图片路径为:
/upload/images/item/shopcategory/1.png该本地图片在页面中无法加载。 【解决办法】 在 Tomcat 的server.xml文件中配置如下:
<Context docBase="E://work/image/upload" path="/upload" /> <Context docBase="o2o" path="/o2o" reloadable="true" source="org.eclipse.jst.jee.server:o2o" />意为:将 path 所指路径替换为 docBase 所指路径,即将
/upload/images/item/shopcategory/1.png替换为:
E://work/image/upload/images/item/shopcategory/1.png这就将数据库中存储的相对路径替换为本地的绝对路径。
server.xml 中 docBase 和 path 的关系梳理 将 path 的路径替换成 docBase 的值,即替换成绝对值根路径 相对路径里必须有 path 前缀,如这里必须有 /upload 相对路径的 path 被 docBase 替换后,确保图片存在于该绝对路径下