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 &lt;PID&gt;

【讨论】:

我使用的是 linux,所以我使用了 ps -ef | grep "tomcat" 并杀死了相应的运行 PID,然后我再次启动了 tomcat 并关闭了 tomcat,但同样的问题出现了:( 你检查日志了吗?你得到了什么例外? 显示 java.net.BindException: Address already in use :8105 您是否在端口 8105 上运行任何其他服务?看起来其他一些进程已经在使用这个端口。 grepsudo 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 无效

怎么卸载tomcat

tomcat学习笔记Tomcat源码剖析

tomcat学习笔记Tomcat源码剖析

命令行启动tomcat,怎么配置

tomcat 配置https