报错笔记:Linux下关闭Tomcat报错问题

 第一次使用服务器,按照教程安装JDK、MySQL和Tomcat,调试功能过程发现结束进程shutdown.sh运行报错,并且此时启动Tomcat,在8080端口也无法访问Tomcat,几番折腾才解决了这个问题。

报错信息如下:

Dec 18, 2021 9:00:45 PM org.apache.catalina.startup.Catalina stopServer
SEVERE: Error stopping Catalina
java.net.ConnectException: Connection refused (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at java.net.Socket.connect(Socket.java:538)
        at java.net.Socket.(Socket.java:434)
        at java.net.Socket.(Socket.java:211)
        at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:667)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:391)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:481)

在搜索各种教程后发现都是使用了结束Java相关 PID 的方法,说结束后即可shutdown,但是测试后还是失败。

# 查找
ps -aux | grep java

# 查找结果
root      3084  0.6  2.0 3424720 80428 pts/0   Sl   20:49   0:01 /usr/development_tools/jdk1.8.0_202/jre/bin/java -Djava.util.logging.config.file=/usr/development_tools/apache-tomcat-9.0.56/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/development_tools/apache-tomcat-9.0.56/bin/bootstrap.jar:/usr/development_tools/apache-tomcat-9.0.56/bin/tomcat-juli.jar -Dcatalina.base=/usr/development_tools/apache-tomcat-9.0.56 -Dcatalina.home=/usr/development_tools/apache-tomcat-9.0.56 -Djava.io.tmpdir=/usr/development_tools/apache-tomcat-9.0.56/temp org.apache.catalina.startup.Bootstrap start
root      3483  0.0  0.0 112644   968 pts/0    S+   20:54   0:00 grep --color=auto java

# 结束进程
kill -9 3084

最后在stackoverflow上找到了解决方法:

I just answered this question under another question.

I solved it today,it maybe a bug with jdk-1.8.x.

For example,my jdk path is "/usr/java/jdk1.8.0_144".

cd /usr/java/jdk1.8.0_144/jre/lib/security/

find the file which named "java.security",

vi java.security

find "securerandom.source=file:/dev/random".

Modify "securerandom.source=file:/dev/./urandom ".

Then,go to the Tomcat/bin directory, execute ./start.sh and ./shutdown.sh,find that everything is all right.

 内容很简单,说的是在修改jdk中的java.security

vi /JDK目录/jre/lib/security/

进入后找到

securerandom.source=file:/dev/random

修改为

securerandom.source=file:/dev/./urandom

保存退出,即可正常使用。

参考链接:

java - SEVERE: Could not contact localhost:8005. Tomcat may not be running error while shutting down - Stack Overflow

你可能感兴趣的:(毕设错误笔记,tomcat,linux,java)