ubuntu16.04下部署tomcat9和java8启动一次需要七八分钟

java

一、环境如下

Ubuntu16.04  +tomcat9+openjdk1.8

二、问题

在tomcat的bin下执行./startup.sh 如下图没有问题

root@bogon:/usr/apache-tomcat-9.0.8/bin# ./startup.sh
./catalina.sh: 110: ./catalina.sh: -Djava.security.egd=file:/dev/./urandom: not found
Using CATALINA_BASE:   /usr/apache-tomcat-9.0.8
Using CATALINA_HOME:   /usr/apache-tomcat-9.0.8
Using CATALINA_TMPDIR: /usr/apache-tomcat-9.0.8/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/apache-tomcat-9.0.8/bin/bootstrap.jar:/usr/apache-tomcat-9.0.8/bin/tomcat-juli.jar
Tomcat started.
但是在浏览器访问http://ip:8080却是一直是等待状态,此时tomcat下面是默认的只有一个tomcat默认的ROOT项目,此时以为是端口被占用,会有很多假象

比如:你的tomcat还没启动,这个时候你执行./shutdown.sh就说连接被拒绝,还有端口什么的问题,这是因为你的服务还没完全启动,执行关闭的操作肯定是监测到你的服务还没有运行,不需要关闭的错误提示了

三、解决办法

这个还是要感谢广大技术人员,这个问题不出意外的已经很多人遭遇了,下面给出解决问题的思路

1:查看tomcat的启动日志 catalina.2018-05-08.log,如下图所示

启动端口初始化都OK,问题就在下面的一段日志中,发现SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance这个创建随机安全实例花费了很长的时间

08-May-2018 19:16:37.013 WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [431,234] milliseconds.
08-May-2018 19:16:37.098 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/apache-tomcat-9.0.8/webapps/manager] has finished in [431,592] ms

2:解决方法,去到openjdk的安装目录下面如下所示

/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security

修改文件中的相关内容,如下图

即把securerandom.source=file:/dev/random改为securerandom.source=file:/dev/./urandom保存重启tomcat服务,问题得到解决

以上是 ubuntu16.04下部署tomcat9和java8启动一次需要七八分钟 的全部内容, 来源链接: utcz.com/z/392114.html

回到顶部