今天因为需要发布项目,要重启tomcat,结果发现启动之后一直卡在哪里,进入tomcat日志一看,日志输出信息卡着不动了,啥情况,就放了两个项目带不动么?
日志输出
Deploying web application directory XXXX
啥情况?一开始以为是服务器内存不够了,启动不了了,等了大概七八分钟居然好了,又可以访问页面了。
由于需要不断的更改测试,服务器上class文件也需要不断的替换,每替换一次,重启等个七八分钟,真是浪费时间,影响效率,影响心情。以前也没有遇到这种情况,不解决也行,反正也可以发布。不过为了能愉快的编写代码,我去找了解决方法。
首先得要知道tomcat启动为啥会变卡的原因。原来这个跟linux或者部分unix系统提供随机数设备是/dev/random 和/dev/urandom 有关系,他们的区别是:urandom安全性没有random高,但random需要时间间隔生成随机数。jdk默认调用random。
说的很清楚了jdk默认用的random,random的安全性高,因为他需要花时间生成随机数,导致启动变卡。
那么接下来修改他的参数不就可以了么!
首先找到jdk的目录/jre/lib/security/java.security文件,在文件中找到securerandom.source这个设置项,将其改为:
securerandom.source=file:/dev/./urandom
备注:因为我安装了好久基本不记得路径了,在这里使用命令查找又快又方便 , find -name java.security
如下图
这不已经找到这个文件的路径了。接下来去这个路径找到文件,如图
我的文件是securerandom.source=file:/dev/urandom
而要求改成securerandom.source=file:/dev/./urandom
这有什么区别啊,不就多了一个点么,我有点疑惑了,不过抱着试试的心态,我改成了下面这种。
替换,先试试吧,关掉tomcat进程重启,果然很快。
如果有疑问请联系我抠:19131284695