关于Tomcat执行shutdown.sh后报的8005错误
刚入行不久的小白一只。
配置环境是:CentOS 7+Tomcat 8
前几天项目原因需要部署一个war包,测试一下是否能正常打开。
但很奇怪的是,部署后Tomcat每次手动关闭时就会报以下错误:
[root@localhost bin]# ./shutdown.sh
Using CATALINA_BASE: /root/apache-tomcat-9.0.11
Using CATALINA_HOME: /root/apache-tomcat-9.0.11
Using CATALINA_TMPDIR: /root/apache-tomcat-9.0.11/temp
Using JRE_HOME: /usr
Using CLASSPATH: /root/apache-tomcat-9.0.11/bin/bootstrap.jar:/root/apache-tomcat-9.0.11/bin/tomcat-juli.jar
Aug 26, 2019 3:06:19 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact [localhost:[8005]]. Tomcat may not be running.
Aug 26, 2019 3:06:19 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
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:498)
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:403)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)
[root@localhost bin]# ./shutdown.sh
Using CATALINA_BASE: /root/apache-tomcat-9.0.11
Using CATALINA_HOME: /root/apache-tomcat-9.0.11
Using CATALINA_TMPDIR: /root/apache-tomcat-9.0.11/temp
Using JRE_HOME: /usr
Using CLASSPATH: /root/apache-tomcat-9.0.11/bin/bootstrap.jar:/root/apache-tomcat-9.0.11/bin/tomcat-juli.jar
Aug 26, 2019 3:06:19 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact [localhost:[8005]]. Tomcat may not be running.
Aug 26, 2019 3:06:19 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
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:498)
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:403)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)
而且网页显示“无法访问此网站”
能确定的是,在部署war包之前,Tomcat是没有问题的。
于是我在网上找解决方案找了很久,大部分说是因为8005端口启动太慢了(计算随机数时阻塞)
解决方法是修改java.security这个文件,将securerandom.source这项改为:
securerandom.source=file:/dev/./urandom
就好了。
然而我试了试发现还是不行…
于是为了这个问题弄了两天还是没搞明白,郁闷了很久。
直到有一天我把虚拟机网络适配器的连接模式由NAT模式改成了桥接模式并复制物理网络连接状态。
这个问题就解决了
现在我还是一脸懵,至今都不知道为什么会这样。