Tomcat:java.net.ConnectException:连接被拒绝
Posted
技术标签:
【中文标题】Tomcat:java.net.ConnectException:连接被拒绝【英文标题】:Tomcat : java.net.ConnectException: Connection refused 【发布时间】:2015-10-31 07:02:18 【问题描述】:上传新的战争文件后,我正在尝试关闭并启动我的 tomcat。但是在关闭 tomcat 实例时出现连接被拒绝错误。错误如下,
Oct 31, 2015 2:55:44 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact localhost:8005. Tomcat may not be running.
Oct 31, 2015 2:55:44 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
java.net.ConnectException: 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.<init>(Socket.java:434)
at java.net.Socket.<init>(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:497)
at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:370)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:457)
Tomcat stopped
即使我使用 kill -9 PID 杀死了正在运行的 java id,但我仍然遇到同样的错误,我无法启动我的应用程序。
如何解决这个问题并在没有错误的情况下关闭我的 tomcat?
【问题讨论】:
我认为问题不是停止服务器,而是启动服务器,您应该在启动服务器时发布错误消息(应该有一些)。 可能重复***.com/questions/5698802/… 【参考方案1】:如果它的窗口尝试在下面杀死正在运行的 tomcat 进程
C:\Users\Saravana.Saravana-PC>netstat -ano | find ":8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1448
TCP 127.0.0.1:8080 127.0.0.1:49543 ESTABLISHED 1448
TCP 127.0.0.1:49543 127.0.0.1:8080 ESTABLISHED 4068
TCP [::]:8080 [::]:0 LISTENING 1448
TCP [::1]:8080 [::1]:49542 ESTABLISHED 1448
TCP [::1]:49542 [::1]:8080 ESTABLISHED 4068
C:\Users\Saravana.Saravana-PC>taskkill.exe /PID 1448 /F
SUCCESS: The process with PID 1448 has been terminated.
C:\Users\Saravana.Saravana-PC>
在 Linux 中,如果 stopTomcat.sh
没有停止 tomcat,那么
ps -ef | grep "tomcat"
kill -9 <PID>
杀死正在运行的tomcat实例,杀死你的java应用程序不会杀死tomcat
要获取正在运行的 tomcat 端口,请使用 sudo netstat -lnp | grep <PID>
【讨论】:
我使用的是 linux,所以我使用了 ps -ef | grep "tomcat" 并杀死了相应的运行 PID,然后我再次启动了 tomcat 并关闭了 tomcat,但同样的问题出现了:( 你检查日志了吗?你得到了什么例外? 显示 java.net.BindException: Address already in usesudo netstat -lnp
使用端口,它会显示使用端口的进程,杀死进程并尝试
我使用 netstat -lnp 8105 进行了检查,但我没有发现 8105 正在监听【参考方案2】:
我清理了我的网络应用程序,它帮助了我:
cd /opt/tomcat/webapps
shopt -s extglob
rm -rf !(ROOT|balancer|webdav)
之后,我就可以部署我的应用程序了
【讨论】:
【参考方案3】:尝试将端口号从 8005 更改为其他端口号并重新启动 Eclipse。
有时可能会发生端口号被突然终止进程阻塞的情况
【讨论】:
我在digitalocean服务器上运行tomcat,而不是在eclipse中以上是关于Tomcat:java.net.ConnectException:连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
使用 Tomcat 7 的 tomcat-maven-plugin - tomcat:deploy 有效,tomcat:undeploy 无效