【问题标题】:java.net.BindException: RMI port already in use Errorjava.net.BindException:RMI 端口已在使用错误
【发布时间】:2015-06-22 14:34:48
【问题描述】:

我有一个在 Tomcat 上运行的 Web 应用程序,经过每周维护后,它突然停止工作。查看日志,我收到以下错误:

2015-06-22 10:10:03,351 [RMIStartThread] ERROR com.corda.ccutil - Found an  existing RMI
registry on 10.0.5.143 with port: 2021
java.net.BindException: RMI port already in use
    at com.corda.ccutil.te.a(te.java:43)
    at com.corda.cvserver.kb.run(kb.java:50)
    at java.lang.Thread.run(Unknown Source)

正如人们遇到此问题的其他一些博客 (Getting Port already in use: 6969; nested exception on tomcat while start up?) 所述,我使用 netstat -anob 命令查找了使用端口 2021 的内容。这是输出:

使用 tasklist 然后找到 PID 2700 的进程,我得到输出:

如果它的tomcat使用2021端口,那为什么会出现问题呢?我尝试重新启动服务器,停止并启动 tomcat 和 Web 应用程序。该应用程序似乎在本地运行良好,但无法在任何其他远程位置打开。

有人对可能出了什么问题有任何想法吗?

谢谢!

【问题讨论】:

    标签: java tomcat


    【解决方案1】:

    可能是因为您的 tomcat 在没有释放使用的端口和资源的情况下突然停止了。 您可能会遇到这种情况,例如,如果您在 Eclipse 之类的 IDE 中运行 Tomcat,然后在不关闭服务器的情况下关闭 Eclipse,这样就不会释放服务器使用的资源。

    只需终止使用端口的进程,然后重新启动服务器即可正常工作。

    【讨论】:

    • 嗨,我杀死了进程并重新启动了服务器,但我仍然收到同样的错误:(
    • 确保进程未仍在运行。停止服务器并执行 netstat 以查看端口是否始终在使用中。如果是这样,请终止该进程并在再次使用 netstat 后进行验证。
    • 我已经检查过了。我一关闭 Tomcat,端口就空闲了,端口上什么也看不到。此外,Web 应用程序的内部链接正在工作。是不是因为RMI端口导致应用没有部署在2021端口,还是内部和外部链接的映射出错了?
    • 你认为在这种情况下清空 Tomcat 的工作目录会有所帮助吗?
    • 如果我没记错的话,你的 tomcat 中有另一个使用 rmi 注册表的应用程序。删除你的并运行 tomcat 然后检查端口
    猜你喜欢
    • 2012-09-26
    • 2019-02-03
    • 2011-05-07
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 2016-03-19
    • 2019-07-07
    相关资源
    最近更新 更多