[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory报错,Tomcat启动失败
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory报错,Tomcat启动失败
问题概述
tomcat启动卡在[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory …卡住不动
解决方案
图片内容详情如下:
解决方案一:
首先一定一定要检查web.xml文件是否有写错没!!!!!!!!!!!!!!!!!!!!!!!!
我之前就是因为web.xml文件中多了一个小标点符号就直接报错,找了一天!!!!!!!!!!!!第二个可能是jdk配置错误了或者是tomcat配置错误
解决方案二:
如果在catalina.bat文件中设置了内存机制, 如:set JAVA_OPTS=-server -Xms1024m -Xmx1024m ,用rem 注释掉,或删除 。
解决方案三:
仔细检查数据库连接文件是否写对,因为我之前要共享数据库,所以写的是局域网的ip地址,后来回家忘了换成localhost,才导致卡死
1 jdbc.driver=com.mysql.cj.jdbc.Driver
2 jdbc.url=jdbc:mysql://192.168.58.12:3307/management_of_metadata1?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8
3 jdbc.username=root
4 jdbc.password=root123
解决方案四:
tomcat启动时一直卡在[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory,通过查找资料发现这个问题和jvm上的熵池策略有关。
在tomcat下bin编辑catalina.sh,然后找到下面这个位置:
if [ -z “
J
S
S
E
O
P
T
S
"
]
;
t
h
e
n
J
S
S
E
O
P
T
S
=
"
−
D
j
d
k
.
t
l
s
.
e
p
h
e
m
e
r
a
l
D
H
K
e
y
S
i
z
e
=
2048
"
f
i
J
A
V
A
O
P
T
S
=
"
JSSE_OPTS" ] ; then JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048" fi JAVA_OPTS="
JSSEOPTS"];thenJSSEOPTS="−Djdk.tls.ephemeralDHKeySize=2048"fiJAVAOPTS="JAVA_OPTS $JSSE_OPTS”
// Register custom URL handlers
//Do this here so custom URL handles (specifically ‘war:…’) can be used in the security policy
JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
给JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"这一行后加-Djava.security.egd=file:/dev/urandom
解决方案五:
找到jdk1.x.x_xx/jre/lib/security/Java.security文件,在文件中找到securerandom.source这个设置项,将其改为:securerandom.source=file:/dev/./urandom。