java jar 启动好慢_Tomcat启动很慢,提示“At least one JAR was scanned for TLDs yet contained no TLDs.”...
Tomcat启动很慢,日志上无任何错误,在日志中查看到如下信息:
At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
原因
Tomcat 7/8都使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom类产生安全随机类SecureRandom的实例作为会话ID,这里花去了342秒,也即接近6分钟。
SHA1PRNG算法是基于SHA-1算法实现且保密性较强的伪随机数生成器。
在SHA1PRNG中,有一个种子产生器,它根据配置执行各种操作。
1)如果java.security.egd属性或securerandom.source属性指定的是"file:/dev/random"或"file:/dev/urandom",那么JVM会使用本地种子产生器NativeSeedGenerator,它会调用super()方法,即调用SeedGenerator.URLSeedGenerator(/dev/random)方法进行初始化。
2)如果java.security.egd属性或securerandom.source属性指定的是其它已存在的URL,那么会调用SeedGenerator.URLSeedGenerator(url)方法进行初始化。
这就是为什么我们设置值为"file:///dev/urandom"或者值为"file:/./dev/random"都会起作用的原因。
在这个实现中,产生器会评估熵池(entropy pool)中的噪声数量。随机数是从熵池中进行创建的。当读操作时,/dev/random设备会只返回熵池中噪声的随机字节。/dev/random非常适合那些需要非常高质量随机性的场景,比如一次性的支付或生成密钥的场景。
当熵池为空时,来自/dev/random的读操作将被阻塞,直到熵池收集到足够的环境噪声数据。这么做的目的是成为一个密码安全的伪随机数发生器,熵池要有尽可能大的输出。对于生成高质量的加密密钥或者是需要长期保护的场景,一定要这么做。
那么什么是环境噪声?
随机数产生器会手机来自设备驱动器和其它源的环境噪声数据,并放入熵池中。产生器会评估熵池中的噪声数据的数量。当熵池为空时,这个噪声数据的收集是比较花时间的。这就意味着,Tomcat在生产环境中使用熵池时,会被阻塞较长的时间。
解决
有两种解决办法:
1)在Tomcat环境中解决
可以通过配置JRE使用非阻塞的Entropy Source。
在catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom即可。
加入后再启动Tomcat,整个启动耗时下降到Server startup in 2912 ms。
2)在JVM环境中解决
打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:
securerandom.source=file:/dev/urandom
替换成
securerandom.source=file:/dev/./urandom
参考资料:https://blog.csdn.net/chszs/article/details/49494701
java jar 启动好慢_Tomcat启动很慢,提示“At least one JAR was scanned for TLDs yet contained no TLDs.”...相关推荐
- Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs
Tomcat启动很慢,每次卡在At least one JAR was scanned for TLDs yet contained no TLDs! 原因 是Tomcat启动时会扫描大量jar包,如 ...
- 解决:Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs
文章目录 一.问题描述 二.问题原因 三.问题解决 3.1 解决步骤 3.2 从Tomcat的Bin目录中启动服务器 3.3 Eclipse启动Tomcat 一.问题描述 报错内容 十月 11, 20 ...
- (完美解决)Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs
一.文章前言 本文是亲测有效解决At least one JAR was scanned for TLDs yet contained no TLDs问题,绝对不是为了积分随便粘贴复制然后压根 ...
- Tomcat8.5.40启动后一直卡在日志At least one JAR was scanned for TLDs yet contained no TLDs
问题描述: 将打包好的war包放到webapps下面,启动tomcat(8.5.40版本)后,tomcat启动界面一直卡在日志At least one JAR was scanned for TLDs ...
- Tomcat 解决“At least one JAR was scanned for TLDs yet contained no TLDs”问题
今天在部署war包到服务器的时候,突然出现以下错误,之前没有,造成的原因未知. org.apache.jasper.servlet.TldScanner.scanJars At least one J ...
- 9 tlds tomcat_解决Tomcat7“At least one JAR was scanned for TLDs yet contained no TLDs”问题
Tomcat版本]7.0.42 [问题描述]Tomcat启动后,访问动态页面后提示"At least one JAR was scanned for TLDs yet contained n ...
- At least one JAR was scanned for TLDs yet contained no TLDs 解决办法
在尝试以下操作前,请先关闭杀毒软件,确保不是受杀毒软件的影响: 我部署的系统报如下错误,就是百度杀毒引起的. 以下是转载内容: Jun 03, 2013 1:09:49 PM org.apache.j ...
- 解决At least one JAR was scanned for TLDs yet contained no TLDs. 问题
解决At least one JAR was scanned for TLDs yet contained no TLDs. 问题 参考文章: (1)解决At least one JAR was sc ...
- java d 配置不生效_Tomcat启动失败问题 (指定的主资源集 [D:\java\apache-tomcat-9.0.35\webapps\AppManageSystem] 无效)...
警告: 部署描述符[D:\java\apache-tomcat-9.0.35\conf\Catalina\localhost\AppManageSystem.xml]中值为[/AppManageSys ...
- 重启tomcat报错 Tomcat7“At least one JAR was scanned for TLDs yet contained no TLDs”
修改$CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true选项. 重启t ...
最新文章
- Modeling Filters and Whitening Filters
- python数据分析——世界杯分析预测
- ArrayList add(int index,E element)
- 究竟是“二O一六年”还是“二零一六年”?嘴上会说可你会写吗?
- mysql驱动为什么自动加载_为什么JDBC中加载驱动要使用反射?
- P4551 最长异或路径
- Spring Boot 10:处理Json数据中的null值
- python saml2 认证实例程序demo
- 第五届大数据科学与工程国际会议(2021)成功召开
- php编程输出心形图案_如何用C语言先输出一段文字如何再输出心形图案?
- mysql删除某天前的数据
- java openoffic excel转html,Java利用OpenOffice進行將word,excel轉化成html解析到界面(上)...
- 【一起学Rust | 进阶篇 | Service Manager库】Rust专用跨平台服务管理库
- linux关闭虚拟网卡,KVM---关闭虚拟网卡virbr0的方法
- 华为服务器centos安装系统,华为裸金属服务器泰山200安装Centos7图文解析
- 郭德纲的网络效应和网络利用
- 优教信使同步辅学总是显示服务器,优教信使同步学习卡在教学中的应用论文
- 【数据结构】红黑树入门知识
- Nginx 负载均衡 ip_hash和一致性hash
- ssh authentication魔鬼细节--.ssh文件夹权限
热门文章
- 大学计算机课程学习路线 左飞老师
- 区块链的底层技术:P2P网络原理与应用详解
- 如何在word中的方框里打钩
- 一个完整的python文件即是一个模块_004孤荷凌寒从零开始学区块链第四天继续尝试用Python来设计一个区块链网络...
- 巨头环伺下,青云QingCloud的云计算之路危机重重
- unity教程:MMORPG网络游戏如何实现玩家同步
- 论文阅读笔记《Deep Graph Matching under Quadratic Constraint》
- 智能电子快递面单系统
- 005_Sketch 工具使用手册
- arm嵌入式led灯闪烁实验报告_嵌入式ARM键盘控制LED灯实验报告