正常的启动tomcat8而且并没有报错,等待了很久终于看到日志打印出来启动成功了
请看下面
INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [455,191] milliseconds.
Tomcat 7/8都使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom类产生安全随机类SecureRandom的实例作为会话ID,这里花去了455秒。就是这里花了大量的时间去。
有两种解决办法:
1.在Tomcat环境中解决
可以通过配置JRE使用非阻塞的Entropy Source。 在catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。 加入后再启动Tomcat,整个启动耗时下降到Server startup in 6213 ms,大大降低了启动的时间。2.在JVM环境中解决
先执行which javac命令检查jdk安装路径
/usr/local/java/jdk1.8.0_92/bin/javac
去到$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:securerandom.source=file:/dev/urandom
替换成
securerandom.source=file:/dev/./urandom
这样问题就解决了