公司有一个历史的遗留项目是传统的MVC架构的前后不分离的项目,一开始使用JDK1.7写的,后来前一阵老板说想在这个远古项目上加点功能,顺带换换皮,于是乎一帮程序员们就用JDK1.8重新翻新了一遍项目顺道改了改UI,部署的方式也从WebLogic换成了Tomcat,本地测试部署也没啥问题,于是乎决定上生产给老板看看,结果一上生产,不出所料果然出事儿了。

之前在本地和测试环境部署都没有问题的项目卡在了 Deploying web application这一步不动了,码农们尝试了各种骚操作:重装系统、重启、重装Tomcat、甚至JDK都重装了3次,依然是卡在这个步骤过不去。

从网上搜了这个问题,目前网上出现这个问题最多的原因是因为securerandom.source=file:/dev/./urandom 没有指定的问题,于是乎我去尝试了这个方法,但是依然没有效果

securerandom.source=file:/dev/./urandom 没有指定的话你的项目只会启动慢,但是不会像这样卡死在这里,我查阅了一下资料,没有指定urandom基本上最慢10分钟内也会正常启动起来,所以项目的问题并不是出在这里,于是乎为了探索一下我去查看了tomcat的源代码。

我们可以看到,图片中最后一条日志就是在这里输出出来的,然后一直到被catch捕获中间并没有日志输出,所以我们可以排除程序的线程并没有因为异常而中断,而是卡死在了中间的某个执行步骤上。

为了断定到底是卡在了哪里,我决定查看一下线程执行的堆栈的详细信息,我使用的工具是阿里的Arthas,下载好之后,我们启动Arthas后,然后输入dashboard,然后我就发现main居然一直是WATTING状态,他居然被挂起了

然后我们执行thrad 1 查看main的堆栈信息,好家伙原来罪魁祸首在这里,C3P0阻塞卡死了,应该是连接池的参数没有写对导致的问题。

折腾了半天竟是因为这种错误。

最后为了先快速上线解决问题,直接更换了数据库连接池,换成了Druid.

记一次Tomcat卡死在 Deploying web application 步骤的问题的更多相关文章

  1. 多个springboot项目部署到tomcat,Error deploying web application archive

    每个springboot单独部署到tomcat下可以正常启动,多个一个就发生异常 Error deploying web application archive 解决:配置文件加上配置区分 sprin ...

  2. Tomcat启动时卡在“INFO: Deploying web application directory ”

    今天在linux上的tomcat部署一个网站时,在刚启动tomcat的时候提示启动成功,然后也能访问成功. 可是第二次启动时虽然没有报错,但无法访问tomcat,查看了catalina.out日志,发 ...

  3. 启动tomcat时,一直卡在Deploying web application directory这块的解决方案

    本来今天正常往服务器上扔一个tomcat 部署一个项目的, 最后再启动tomcat 的时候 发现项目一直都访问不了,看了一下日志: [root@iz8vbdzx7y7owm488t4d89z bin] ...

  4. 启动tomcat时,一直卡在Deploying web application directory

    本来今天正常往服务器上扔一个tomcat 部署一个项目的, 最后再启动tomcat 的时候 发现项目一直都访问不了,看了一下日志: 1 2 3 4 5 6 7 [root@iz8vbdzx7y7owm ...

  5. [转载]启动tomcat时,一直卡在Deploying web application directory这块的解决方案

    转载:https://www.cnblogs.com/mycifeng/p/6972446.html 本来今天正常往服务器上扔一个tomcat 部署一个项目的, 最后再启动tomcat 的时候 发现项 ...

  6. 【转】启动tomcat的时候一直卡在INFO: Deploying web application

    在用centos7.+不熟tomcat项目的时候,启动时突然很奇怪的没报错,但是又访问不了网址,调用./shutdown.sh又结束不了,一直出现: java.net.ConnectException ...

  7. linux启动tomcat很久或者很慢Tomcat启动时卡在“INFO: Deploying web application directory ......”的解决方法

    解决方案: 找到jdk1.x.x_xx/jre/lib/security/java.security文件,在文件中找到securerandom.source这个设置项,将其改为: securerand ...

  8. linux下启动tomcat时卡在Deploying web application directory

    找到jdk1.x.x_xx/jre/lib/security/Java.security文件,在文件中找到securerandom.source这个设置项,将其改为: securerandom.sou ...

  9. Tomcat启动时卡在“INFO: Deploying web application directory ......”的解决方法

    https://blog.csdn.net/njchenyi/article/details/46641141

随机推荐

  1. devicePixelRatio 那些事儿

    devicePixelRatio 那些事儿 设备像素比 window.devicePixelRatio 是设备上物理像素和设备独立像素的比例,即公式表示为:window.devicePixelRati ...

  2. java中求一下2008年5月31日, 往前倒30天是哪天?

    题目9: 2008年5月31日, 往前倒30天是哪天?  import java.util.*; public class Test {     public static void main(Str ...

  3. java中this这个概念初学者非常难理解,请举例说明

    4.this关键字(this key word) 继上一小节,(3.一个对象可能有多个参考)this是当中的一个参考!指向他自己. class MyTestDate {    int year;    ...

  4. CSS样式写在JSP代码中的几种方法

    1.行内样式. 可以直接把css代码写在现有的HTML标签元素的开始标签里面,并且css样式代码要写在style=" "双引号中才可以, 如: <p style=" ...

  5. Jar 包下载以及 maven jar 包配置

    学习内容: jar包下载是我们必须掌握的一个内容,不管是使用Maven项目还是其他项目,一般都需要引入外部的 jar 包 jar包下载 下载地址(打不开网址的直接百度搜索 maven reposito ...

  6. CCS基础样式表

    一.css样式表 1.样式表分类 1.内联式 <p >This is an apple</p> 2.内嵌样式表 作为一个独立的区域 内嵌在网页里面,必须写在head标签里面 & ...

  7. Leetcode78/90/491之回溯中的子集问题

    回溯之子集问题 子集问题和组合问题特别像 Leetcode78-子集 给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有可能的子集(幂集) 解集 不能 包含重复的子集.你可以按 任 ...

  8. Java基础语法01——变量与运算符

    本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).

  9. 微信小程序循环列表点击每一个单独添加动画

    首先,咱们看一下微信小程序动画怎么实现,我首先想到的是anime.js,但是引入之后用不了,微信小程序内的css也无法做到循环的动态,我就去找官方文档看看有没有相应的方法,哎,还真有 点击这里查看 微 ...

  10. python中一些列表知识

    列表 序列是 Python 中最基本的数据结构. 序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推. Python 有 6 个序列的内置类型,但最常见的是列表和 ...