Tomcat 启动失败,在项目中的遇到了各种各样的问题,现在逐一记录下来
大致分这么几种类型
首先,要有个基本的、前提的概念,Tomcat也是一个用Java写的项目,所以,可以按照这个思路来排查问题。JDK等......
一、Tomcat 本身配置
-
Tomcat 没有设置 JDK。或者,Tomcat 的版本和 JDK 版本不匹配,或者不能适配。
-
Tomcat 的端口被占用:tomcat 端口可能被其他程序占用, 很多情况下,8080默认端口往往被占用,修改一下就可以。
-
没有配置数据库信息:现在比较新的(2015年之后)一些项目,例如微服务项目,一般都在 ymal 或者 application文件中配置数据库信息。但是,在一些老项目中,可能会在 tomcat 的 server.xml 文件中,配置数据库的连接信息,这往往被忽视。
-
Tomcat 的内存配置不合适:找到 Tomcat/bin/Catalina.bat 文件,注释下面一行代码 “set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8” ,就是代码前面加rem。
-
Tomcat 的默认启动时间是45秒。但是,对于很多大型项目,或者历史项目的启动,往往需要好几分钟,这样就需要修改默认的启动时间。
二、IDEA 配置
1. 没设置JDK:没配置 jdk 的安装目录,或者 JDK 版本不对
2. 项目编译使用的 JDK 版本:没有配置,或配置错误
3. 打开IDEA 中的“项目配置”,选择不同的颜色来标记不同的目录,需要的文件夹前面打勾
例如:src 文件夹是蓝色,class 文件夹是橙色,test文件夹
4. Maven 配置:Maven配置的不对,往往导致项目启动依赖的jar 无法下载成功,往往遇到问题最多的是,jar 文件夹下载成功,里面的版本不对,或者里面文件缺失,或者空的。需要配置正确的 Maven 信息。
三、Web 应用配置
-
Web 应用 out 路径:web 项目的 out 目录没配置或配置错误
-
Web 应用根路径配置:web 项目的 "/" 根目录没有配置,或者配置错误
-
Web 应用打包格式配置不对:如果需要打 war 包,可能配置成 jar 包输出,或者名字不匹配,导致 Tomcat 里配置的名字和项目生成的 war 包名字不一致。
-
Web 应用的 webapp/WEB_INF/lib 下的没有需要的 jar 包,或者 jar 包没有加载到项目中,或者 jar 包的版本不对,或没有加入到项目打包路径out下
-
Servlet 的 jar 包:这个 jar 包比较特殊,需要手动加入项目的 classpath ,否则,Web项目无法启动。
-
如果是传统的 Spring项目或者 比 Spring MVC更老的项目,检查 web.xml 中的配置是否正确。
-
其他问题,需要结合Tomcat 的启动报错信息来看, 有的是 bean 的循环引用问题,几句话说不完。