【问题标题】:RMI disabled, Java still listens on port 1099RMI 已禁用,Java 仍在侦听端口 1099
【发布时间】:2017-10-27 04:37:23
【问题描述】:

当我执行netstat -tupan 时,其中一个条目如下:

tcp        0      0 :::1099  :::*         LISTEN      8778/java

但是,我已经从启动时传递给 Java 的选项中删除了有关 RMI 和 JMX 的所有设置。我的问题是:

  1. RMI 是否仍处于启用状态?我可以使用 telnet 连接到端口。
  2. 如果不是,为什么 Java 仍然监听端口?

编辑:我使用 netcat:nc -l 1099 阻止了端口。这提示应用程序启动时出错,原来我的应用程序中有一个MBean,它是Spring在启动时自动拾取并注册的。

【问题讨论】:

  • 您是否尝试将您的 IP/端口放入黑洞,只是为了确保 RMI 是罪魁祸首
  • 8778 PID 下是什么? stackoverflow.com/questions/821837/…
  • 也许您可以停止您的应用程序,运行另一个侦听端口 1099 的应用程序。然后再次启动您的应用程序。 Address already in use 错误应显示在日志文件中,并指示在端口 1099 上侦听的类。
  • 会不会是Tomcat自己打开了端口? JMX 端口通常用于管理目的。我已经看到可以在某些端口上注册 JMX bean 的代码。如果没记错的话,1099 端口也可以用于 JNDI 服务。
  • @beckyang:你赢了,你的方法帮助我很快发现了问题。将其发布为答案,以便我可以分配赏金;-)

标签: java rmi jmx


【解决方案1】:

以下是跟踪问题的步骤:

  1. 停止您的应用程序
  2. 运行另一个监听 1099 端口的应用程序
  3. 再次启动您的应用程序
  4. java.net.BindException: Address already in use 尝试侦听端口 1099 的类抛出异常。

您可以根据线索处理问题。

【讨论】:

    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多