今天在linux上的tomcat部署一个网站时,在刚启动tomcat的时候提示启动成功,然后也能访问成功.
可是第二次启动时虽然没有报错,但无法访问tomcat,查看了catalina.out日志(可用./catalina.sh run命令控制台启动tomcat,各种日志都会打印在命令行),发现tomcat卡在了INFO: Deploying web application directory …
后来看了一篇博文解决了问题.在 $JAVA_HOME/jre/lib/security/java.security内,将securerandom.source的内容改为file:/dev/./urandom
原来linux或者部分unix系统提供随机数设备是/dev/random 和/dev/urandom ,两个有区别,urandom安全性没有random高,但random需要时间间隔生成随机数。
可能在生成随机数的时候卡住了,导致tomcat启动不了/
修改完后tomcat很快就启动完成了。
在服务器启动时也可以加上参数 -Djava.security.egd=file:/dev/./urandom