一、环境如下

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启动一次需要七八分钟的更多相关文章

  1. Ubuntu16.04下部署 nginx+uwsgi+django1.9.7(虚拟环境pyenv+virtualenv)

    由于用的新版本系统,和旧的稍有差别,在网上搜了很多相关资料,搞了三天终于搞好在Ubuntu16.04下的部署,接下来就详细写写步骤以及其中遇到的问题.前提是安装有虚拟环境pyenv+virtualen ...

  2. Ubuntu16.04下部署golang开发环境

    一.需要文件 golang http://www.golangtc.com/download liteide http://www.golangtc.com/download/liteide 二.安装 ...

  3. Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  4. Ubuntu16.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  5. Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu16.04下Mongodb(离线安 ...

  6. ubuntu16.04下Hyperledger之搭建Fabric环境简单操作(五步启动e2e_cli)

    如果你已经安装好go等工具.git及checkout相关代及下载相关镜像,您只需下面5步就能up e2e_cli~/go/src/github.com/hyperledger/fabric$ sudo ...

  7. Ubuntu16.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐) https://docs.mongodb.com/manual/tutorial/ins ...

  8. primecoin在ubuntu16.04上部署服务:

    primecoin在ubuntu16.04上部署服务: 一.下载Tomcat,Jdk,primecoin(公司内部文件) 注意Tomcat版本需要高于Jdk的,不然会报错. 二.把它们都解压到你要的安 ...

  9. Ubuntu16.04下沙盒数据导入到 Neo4j 数据库(图文详解)

    不多说,直接上干货! 参考博客 http://blog.csdn.net/u012318074/article/details/72793914   (表示感谢)  前期博客 Neo4j沙盒实验申请过 ...

随机推荐

  1. POP3_关于 multipart/related;boundary=

    http协议对mime类型有详细描述,multipart/....是单个消息头包含多个消息体的解决方案.multipart媒体类型对发送非文本的各媒体类型是有用的.目前常用的有这些subtype: M ...

  2. Windows 10官方原版ISO制作方法

    其实市面上的ISO原版都是这样的方法制作成光盘,然后再打包出来供人们下载的. 1.下载Windows 10安装程序工具: https://www.microsoft.com/zh-cn/softwar ...

  3. 李善友《认知升级之第一性原理》--507张PPT全解!_搜狐科技_搜狐网

      http://www.sohu.com/a/151470602_733114

  4. java 虚拟机启动参数 (转)

    在Java.J2EE大型应用中,JVM非标准参数的配置直接关系到整个系统的性能. JVM非标准参数指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置.但是在生产环境中,为了提 ...

  5. 【Go命令教程】5. go clean

    执行 go clean 命令会删除掉执行其它命令时产生的一些文件和目录,包括: 在使用 go build 命令时在当前代码包下生成的与包名同名或者与Go源码文件同名的可执行文件.在Windows下,则 ...

  6. oracle dba

    http://www.oracleblog.org/category/study-note/ https://jonathanlewis.wordpress.com/ http://www.julia ...

  7. java中Keytool的使用总结

    以前用过几次这个东东,但每次都重新查询一次.本文原始出处是这里 . ----------------------------------------------------------- Keytoo ...

  8. jscript调用bat注意事项

    开发的游戏项目,需要一个工具,对指定的资源进行复制.加密,然后打包.之前打包时都手工操作,复制与加密这二步分别写了几个工具(lua加密与图片资源加密是分开的),后来感觉bat操作路径特别麻烦,所以我改 ...

  9. 开源项目MultiChoiceAdapter详解(三)——MulitChoiceNormalArrayAdapter的使用

    MulitChoiceNormalArrayAdapter是我自己定义的一个类,其实就是实现了MulitChoiceArrayAdapter,为什么做这个简单的实现类呢,因为这样我们在不用Action ...

  10. List集合中的数据按照某一个属性进行分组

    有的时候,我们需要在java中对集合中的数据进行分组运算.例如:Bill对象有money(float)和type(String)属性,现有个集合List<Bill>,需要按照Bill的ty ...