1. 环境描述 :linux centos7 、tomcat 8 、java spring 项目
2. 遇到的问题:
a) tomcat 启动慢;
b) service中明明有方法,执行却报 java.lang.NoSuchMethodError;
3. 解决方案:
问题a:tomcat 启动慢,发现日志中启动较慢的模块是:org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [169,960] milliseconds.这个问题,网上已经官方网站明确的解释,这里不多谈了,我采用了较为简单的方案:export JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom",其他方案大家自行搜索;
问题b:还有一个很重要的产生的背景,项目是在不同地点编译(家、公司),增量上线;所以,原因不言而喻,就是编译环境打包环境不同,导致上述问题;解决方案使用同一个环境下的代码全量更新;