大概率是因为自己对Tomcat以及jvm不熟;
今天上午一直在碰到问题解决问题,把问题记录一下,理解一下为什么会出现这种问题。web项目启动的时候:
team url经常会过期,网上能找到可以用的不容易
解决:使用http://jrebel.yanjiayu.cn:9001/64245b6b-ef68-4bdc-aabf-7f8e85a540e4
后面UUID部分可以替换,在线生成https://www.uuidgenerator.net/
参考: www.cnblogs.com/joyny/p/102…
今天在启动了几次之后,突然maven不能正常import,并且在maven构建过程中或者后期compiler过程中报错:
# There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (malloc) failed to allocate 1338256 bytes for Chunk::new 复制代码
解决:
一开始以为是虚拟机内存设置的太少,后面在D:/apache tomcat/apache-tomcat-8.0.51/bin目录下的catalina.bat目录下设置了jvm启动参数-Xss:
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m,仍然不行; catalina.bat是Tomcat中最重要的脚本,比如Tomcat的启动和关闭都是catalina.bat完成的。Tomcat会在终端打印catalina log,见图2图1 catalina.bat路径
图2 catalina log
疑惑:为什么Tomcat在shutdown之后依然有进程在运行???
问题:Tomcat启动就报这个错;主要是因为配置的时候war和war explode两种模式不一致。
解决:网上查了资料,这是一个常见的问题,的确也是我第二次碰到了,但是我依然不知道如何解决,现在可以总结:改变了artifact,然而Tomcat的配置中的artifact没有重新配置,就会报错。
artifact包括两种模式:
explode模式下的:on update action和on frame deactivation支持update classes and resources选项(热部署)
步骤: 1.file---project structure-》
2.步骤中最后一步一定是在deployment处;
我碰到过即使看起来都是war模式,都是一致的,却报这个错误,这是因为修改了artifact模式之后,最后没有在deployment处重新配置。
这个也是catalina.bat中配置文件中配置项写的不对,导致Tomcat启动出错,我在修复了第3个小问题之后,这个问题就不存在了。