springboot+maven+idea 踩坑记

ps:熟悉idea后 搭建新项目和导入旧项目过程中遇到的各种问题解决方案记录

一、导入新的maven项目,直接引用的其他项目的本地仓库,spring主函数运行报错。因为在项目中有看到对应的依赖包名称,故以为jar包没问题;
尝试各种方法不成功,最后重新拷贝maven的setting文件,新建一个本地库,在项目更换路径,让其重新下载jar包。成功运行!
springboot+maven+idea 踩坑记

解决:
重新下载maven依赖包解决:
总结:可能是旧的本地仓库已有的依赖文件包下载不完全,新项目引用后检测到已存在依赖包不会重新下载,造成jar包缺失。

同理:
springboot+maven+idea 踩坑记
二、严重:Servlet.service() for servlet jsp threw exception
公司一老旧的项目,运行环境一直是eclipse,尝试切换到idea,启动tomcat,本地日志报错,打不开jsp页面,报500错误;
springboot+maven+idea 踩坑记springboot+maven+idea 踩坑记
原因:网上原因是项目中的jsp-api.jar 和servlet-api.jar与tomcat中的冲突
最终发现自己的问题是根据提示创建的artifacts是web exploded
类似于下图,创建的是web exploded 而不是war exploded
解决方式删除再重新创建即可!

springboot+maven+idea 踩坑记
另:artifacts中Web Application:Exploded和Web Application:Archive的区别:
web application exploded:这个是以文件夹形式(War Exploded)发布项目,选择这个,发布项目时就会自动生成文件夹在指定的output directory,打包到target文件夹下,可设置热部署。
如果选web application archive,就是war包形式,每次都会重新打包全部的,将项目打成一个war包在指定位置(一般tomcat中),每次修改需重新启动tomcat

三、springboot运行main 函数连接数据库报错:
连接MySQL数据库时报以下时区错误信息:

java.sql.SQLException: The server time zone value ‘�й���׼ʱ��’ is
unrecognized or represents more than one time zone. You must configure
either the server or JDBC driver (via the serverTimezone configuration
property) to use a more specifc time zone value if you want to utilize
time zone support.

解决方案:
为URL添加参数serverTimezone=UTC即可,这里的时区可以根据自己数据库的设定来设置(GMT/UTC )。

jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
上一篇:Tomcat部署时war和war exploded区别以及平时踩得坑


下一篇:Tomcat学习笔记