本来今天正常往服务器上扔一个tomcat 部署一个项目的,
最后再启动tomcat 的时候 发现项目一直都访问不了,看了一下日志:
root@iz8vbdzx7y7owm488t4d89z bin]# tail -f ../logs/catalina.out
09-Jun-2017 15:57:06.666 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
09-Jun-2017 15:57:06.667 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
09-Jun-2017 15:57:06.667 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 535 ms
09-Jun-2017 15:57:06.684 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
09-Jun-2017 15:57:06.684 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.15
09-Jun-2017 15:57:06.690 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /opt/apache-tomcat-8.0.15-server/webapps/ROOT
发现始终都卡在这个目录上,然后我就等,一直等了差不多有7、8分钟才完全启动起来,这就让我很诧异,
webapps下没有自己的项目光跑tomcat自己的项目都卡成这样,这还了得,看来tomcat想上天啊这是,我就查阅了一下资料,
发现网上说了很多,大部分是废话,不过在这其中发现了一篇文章说的非常好,有效的解决了当前的问题。
http://blog.csdn.net/njchenyi/article/details/46641141
这篇文章的大意就是下面这句话
linux或者部分unix系统提供随机数设备是/dev/random 和/dev/urandom ,
两个有区别,urandom安全性没有random高,但random需要时间间隔生成随机数。jdk默认调用random。
然后就很简单啦,找到对应的配置文件去修改就好了
找到jdk1.x.x_xx/jre/lib/security/Java.security文件,在文件中找到securerandom.source这个设置项,将其改为:
securerandom.source=file:/dev/./urandom
修改完毕后,试了一下,ok果然非常好使。
这里非常感谢njchenyi这个人,本人怕哪天找不见你的文章了,所以特写此篇随笔以备不时之需。