Tomcat版本:Apache Tomcat/8.5.69
JDK版本1.7
intellij IDEA 2021.2
1.手动部署项目启动Tomcat:
前提:apache-tomcat-8.5.69\webapps下有war包。
手动启动Tomcat时,会显示内存不足,并出现一下信息:
18-Aug-2021 09:13:23.055 严重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件
18-Aug-2021 09:13:23.056 严重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[/kcm]启动失败
18-Aug-2021 09:13:25.164 严重 [main] org.apache.catalina.core.ContainerBase.startInternal 子容器启动失败
java.lang.OutOfMemoryError: PermGen space
Exception in thread "main"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main"
根据log信息 java.lang.OutOfMemoryError: PermGen space,需要解决PermGen 内存不足的问题。
解决方案A,打开catalina.bat,在其中设置参数:set JAVA_OPTS= -Xms2048M -Xmx2048M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M
set JAVA_OPTS= -Xms2048M -Xmx2048M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M
设置完成后再次启动。
如下图所示,项目部署完成。
登录谷歌浏览器,访问:localhost:8080/war包名/login。显示登录成功如下图所示:
2.在解决方案A中,对catalina.bat中添加了设置,在这种配置下使用IDEA启动项目,会在卡在如下图所示的地方。
解决方案,去除掉之前catalina.bat中的设置(set JAVA_OPTS= -Xms2048M -Xmx2048M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M)。
在IDEA中Tomcat的配置中配置内存,在 VM options中设置信息:-Xms2048m -Xmx2048m -XX:MaxNewSize=512m -XX:MaxPermSize=512m
然后在重新部署IDEA中的项目。
三、部署Tomcat时保证 server中 URL后缀“http://localhost:8/XXX_web_war/”和deployment中Application context中的内容保持一致。否则运行时会出现404报错。