记一次Tomcat卡死在 Deploying web application 步骤的问题
公司有一个历史的遗留项目是传统的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 步骤的问题的更多相关文章
- 多个springboot项目部署到tomcat,Error deploying web application archive
每个springboot单独部署到tomcat下可以正常启动,多个一个就发生异常 Error deploying web application archive 解决:配置文件加上配置区分 sprin ...
- Tomcat启动时卡在“INFO: Deploying web application directory ”
今天在linux上的tomcat部署一个网站时,在刚启动tomcat的时候提示启动成功,然后也能访问成功. 可是第二次启动时虽然没有报错,但无法访问tomcat,查看了catalina.out日志,发 ...
- 启动tomcat时,一直卡在Deploying web application directory这块的解决方案
本来今天正常往服务器上扔一个tomcat 部署一个项目的, 最后再启动tomcat 的时候 发现项目一直都访问不了,看了一下日志: [root@iz8vbdzx7y7owm488t4d89z bin] ...
- 启动tomcat时,一直卡在Deploying web application directory
本来今天正常往服务器上扔一个tomcat 部署一个项目的, 最后再启动tomcat 的时候 发现项目一直都访问不了,看了一下日志: 1 2 3 4 5 6 7 [root@iz8vbdzx7y7owm ...
- [转载]启动tomcat时,一直卡在Deploying web application directory这块的解决方案
转载:https://www.cnblogs.com/mycifeng/p/6972446.html 本来今天正常往服务器上扔一个tomcat 部署一个项目的, 最后再启动tomcat 的时候 发现项 ...
- 【转】启动tomcat的时候一直卡在INFO: Deploying web application
在用centos7.+不熟tomcat项目的时候,启动时突然很奇怪的没报错,但是又访问不了网址,调用./shutdown.sh又结束不了,一直出现: java.net.ConnectException ...
- linux启动tomcat很久或者很慢Tomcat启动时卡在“INFO: Deploying web application directory ......”的解决方法
解决方案: 找到jdk1.x.x_xx/jre/lib/security/java.security文件,在文件中找到securerandom.source这个设置项,将其改为: securerand ...
- linux下启动tomcat时卡在Deploying web application directory
找到jdk1.x.x_xx/jre/lib/security/Java.security文件,在文件中找到securerandom.source这个设置项,将其改为: securerandom.sou ...
- Tomcat启动时卡在“INFO: Deploying web application directory ......”的解决方法
https://blog.csdn.net/njchenyi/article/details/46641141
随机推荐
- ES6-11学习笔记--异步迭代
ES9提供异步迭代: for await of Symbol.asyncIterator function getPromise(time) { return new Promise((resol ...
- 我的python学习记_01
一切的开始都是从打招呼开始的,python也不例外,首先和将要陪伴我后半生的朋友说句情话: print("不是在最美好的时光遇见你,而是因为遇见你才让我有了最美好的时光") 初写代 ...
- java中什么是内部类?它有什么用?如何使用?
什么是内部类?马克-to-win:一句话:类中还有类.里边的叫内部类, 外边的叫外层类.有什么用?1)像文件夹一样,文件放文件夹里更清晰,内部类放外层类中, 清晰.主要从编程序的逻辑角度出发,有用.比 ...
- JavaScript实现表单的校验以及匹配正则表达式
运行效果: 未填写信息报错: 匹配正则表达式: 信息校验无误: 源代码如下: 1 <!DOCTYPE html> 2 <html lang="zh"> 3 ...
- linux设备管理之主设备号与次设备号
主设备号和次设备号 一个字符设备或者块设备都有一个主设备号和次设备号.主设备号和次设备号统称为设备号.主设备号用来表示一个特定的驱动程序.次设备号用来表示使用该驱动程序的其他设备.(主设备号和控制这类 ...
- 夯实基础上篇-图解 JavaScript 执行机制
讲基础不易,本文通过 9 个 demo.18 张 图.2.4k 文字串讲声明提升.JavaScript 编译和执行.执行上下文.调用栈的基础知识.
- 7.Jenkins进阶之流水线pipeline语法入门学习(2)
目录一览: (2) Declarative Pipeline Syntax 2.1) Sections - 章节 2.2) Directives - 指令 2.3) Sequential Stages ...
- NodeJs学习日报day6——路由模块
const express = require('express') const app = express() app.get('/user', function(req, resp) { resp ...
- Java语言学习day31--8月06日
今日内容介绍1.正则表达式的定义及使用2.Date类的用法3.Calendar类的用法 ###01正则表达式的概念和作用 * A: 正则表达式的概念和作用 * a: 正则表达式的概述 * 正则表达式也 ...
- 前端优化建议:合理利用JavaScript的条件运算符
在最近的项目中要使用到一个格式化文件大小的算法,于是不假思索写了如下代码: function formatSize(size){ if(size<1024){ return size+" ...